selenium自动翻页爬取数据信息

这篇具有很好参考价值的文章主要介绍了selenium自动翻页爬取数据信息。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

爬取数据

import time
from datetime import datetime
import csv
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from bs4 import BeautifulSoup as bs
from bs4 import BeautifulSoup
import re
# 驱动路径
driver_path = r'E:\Computer\notebook\TB_Reptile\chromedriver.exe'
browser = None

# 搜索关键词
search_key_words = "固态硬盘"
info_array = []

#爬取网站的页数
number = int(input('请输入爬取页数:'))

def init_driver():
    # 浏览器选项
    options = webdriver.ChromeOptions()
    # 不自动关闭浏览器
    options.add_experimental_option('detach', True)
    # 最大化
    options.add_argument('--start-maximized')

    global browser
    browser = webdriver.Chrome(service=Service(executable_path=driver_path), options=options)


def login():
    # 进入登陆页面
    browser.get('https://login.taobao.com/member/login.jhtml?spm=a21bo.jianhua.0.0.5af911d9mqkcEe&f=top&redirectURL=http%3A%2F%2Fwww.taobao.com%2F')

    print("请在10秒内扫码登陆")
    time.sleep(15)

    now = datetime.now()
    print("login success:", now.strftime("%Y-%m-%d %H:%M:%S"))

def search_info():
    global array
    array = []
    browser.find_element_by_xpath('//*[@id="q"]').send_keys(search_key_words)
    browser.find_element_by_xpath('//*[@id="J_TSearchForm"]/div[1]/button').click()
    divs = browser.find_elements_by_xpath('//*[@id="mainsrp-itemlist"]/div/div/div[1]/div') 
    
    global total_info
    global test
    total_info = []
    count = 1
    while True:
        start = datetime.now()
        print('------------第{}页数据信息开始爬取-------时间:{}-------------'.format(count,start.strftime("%Y-%m-%d %H:%M:%S")))
        
        browser.find_element_by_xpath('//*[@id="J_relative"]/div[1]/div/div[2]/ul/li[3]/a/span').click()
        divs = browser.find_elements_by_xpath('//*[@id="mainsrp-itemlist"]/div/div/div[1]/div')
        html = browser.page_source
        
        test = re.findall(' g_page_config =(.*?);',html)[0]
        title = re.findall('"raw_title":"(.*?)",',test) # 商品标题
        price = re.findall('"view_price":"(.*?)",',test) # 价格
        paynum = re.findall('"view_sales":"(\d+)',test) # 付款人数
        location = re.findall('"item_loc":"(.*?)",',test) # 地点
        name = re.findall('"nick":"(.*?)",',test) # 店铺名
        comment = re.findall('"comment_count":"(.*?)","',test) # 评论数
        delivery = []
        description = []
        service = []
        d1 = re.findall('"delivery":(.*?),',test)
        d2 = re.findall('"description":(.*?),',test)
        s = re.findall('"service":(.*?),',test)
        for j in range(len(d1)):
            delivery.append(d1[j][1:]) # 物流
            description.append(d2[j][1:]) # 描述
            service.append(s[j][1:]) # 服务
        for i in range(len(title)):
            total_info.append([title[i],price[i],paynum[i],location[i],name[i],comment[i],delivery[i],description[i],service[i]])
        endtime = datetime.now()
        print('------------第{}页数据信息爬取完毕-------时间:{}-------------'.format(count,endtime.strftime("%Y-%m-%d %H:%M:%S")))
        
        if count >= number:
            break
        count += 1
        time.sleep(5)

def browser_quit():
    browser.quit()

init_driver()
login()
search_info()
browser_quit()
print("商品总信息数:",len(total_info))

运行结果:

selenium自动翻页爬取数据信息

 数据保存

with open ('淘宝.csv',mode='a+',newline='',encoding='gbk') as f:
        f = csv.writer(f)
        f.writerow(['商品标题','价格','付款数','发货地','店铺','评论数','描述评分','物流评分','服务评分'])
    
for i in range(len(total_info)):
    with open ('淘宝.csv',mode='a+',newline='',encoding='gbk') as f:
        f = csv.writer(f)
        f.writerow(total_info[i])
import pandas as pd
data = pd.read_csv('淘宝.csv',encoding='gbk')
data

运行结果:

selenium自动翻页爬取数据信息

 文章来源地址https://www.toymoban.com/news/detail-511476.html

到了这里,关于selenium自动翻页爬取数据信息的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用Selenium和bs4进行Web数据爬取和自动化(爬取掘金首页文章列表)

    2024软件测试面试刷题,这个小程序(永久刷题),靠它快速找到工作了!(刷题APP的天花板)_软件测试刷题小程序-CSDN博客 文章浏览阅读2.9k次,点赞85次,收藏12次。你知不知道有这么一个软件测试面试的刷题小程序。里面包含了面试常问的软件测试基础题,web自动化测试、

    2024年03月18日
    浏览(60)
  • Python-爬虫、自动化(selenium,动态网页翻页,模拟搜索,下拉列表选择、selenium行为链)

    selenium是一个Web自动化测试工具,可以直接运行在浏览器上·支持所有主流的浏览器.可以根据我们的指令,让浏览器自动加载页面,获取需要的数据,基础页面截图等。 使用pip install selenium命令下载selenium模块。 运行下列代码: 说明没有下载对应浏览器的驱动,这里使用谷歌

    2024年02月01日
    浏览(69)
  • Python实战:使用selenium及BeautifulSoup4进行BOOS直聘信息爬取与数据累积【附源码】

    操作系统 :适用于Windows、macOS、Linux。 Python版本 :Python 3.6及以上。 依赖库 : selenium:用于模拟浏览器操作。 webdriver_manager:自动管理驱动程序。 BeautifulSoup4:解析HTML页面。 pandas:数据处理和CSV文件操作。 logging:日志记录。 本项目旨在通过Selenium模拟用户浏览器行为,获

    2024年04月27日
    浏览(44)
  • Python爬虫之Scrapy框架系列(21)——重写媒体管道类实现保存图片名字自定义及多页爬取

    spider文件中要拿到图片列表并yield item; item里需要定义特殊的字段名:image_urls=scrapy.Field(); settings里设置IMAGES_STORE存储路径,如果路径不存在,系统会帮助我们创建; 使用默认管道则在s

    2024年02月10日
    浏览(72)
  • selenium获取翻页列表所有数据

    2024年02月09日
    浏览(32)
  • 用selenium爬取直播信息(2)

    1.解析数据的函数 2.保存数据的函数 3.主函数设计 四、完整代码 总结 前言 ================================================================= 目前是直播行业的一个爆发期,由于国家对直播行业进行整顿和规范,现在整个直播行业也在稳固发展。随着互联网和网络直播市场的快速发展,相信

    2024年04月22日
    浏览(36)
  • 用selenium爬取知网信息(五)

    总结一下: 十四、 Selenium的一些常用语法和方法 语法/方法 描述 from selenium import webdriver 导入Selenium库 from selenium.webdriver.common.by import By 导入定位策略的枚举类 from selenium.webdriver.support.ui import WebDriverWait 导入等待元素加载的类 from selenium.webdriver.support import expected_conditions as E

    2024年02月20日
    浏览(36)
  • 基于selenium爬取去哪儿酒店信息

    去哪儿网站中,要爬取旅游的酒店信息,我们用通常的requests库进行爬取的时候发现,当我们要翻页的时候网址未出现变化,返回的网页源码信息始终只有第一页的内容,那么有没有一种方式可以使得能够翻页爬取呢?这时候我们要用爬虫常用的selenium框架进行爬取了,下面就

    2024年02月09日
    浏览(42)
  • Selenium Python 实战:爬取个股实时信息

    Selenium是广泛使用的开源Web UI(用户界面)自动化测试套件之一。支持Chrome, Edge, Firfox等常见浏览器。除用于web应用程序自动化测试外,Selenium 也适合用于抓取JavaScript 动态网页数据。 本文演示如何使用 Selenium python库编程来爬取个股数据。 用pip安装 selenium库 下载浏览器的驱动

    2024年01月23日
    浏览(39)
  • Selenium定向爬取PubMed生物医学摘要信息

    目录 一、前言 1、PubMed是什么? 2、PubMed特点 二、实现代码 三、分析HTML

    2024年02月08日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包