zoukankan      html  css  js  c++  java
  • 爬取某东商品数据 Python基于selenium

    本文仅用于学习与交流,不具有任何商业价值,如有问题,请与我联系,我将即时处理。

    爬下某东数据,基于selenium。上代码:

     1 """
     2     爬取某东数据并保存到csv
     3 """
     4 import random
     5 import time
     6 
     7 from selenium import webdriver
     8 import csv
     9 
    10 keyWord = input('请输入你要搜索的内容:')
    11 f = open(f'{keyWord}.csv', mode='a', encoding='utf-8-sig', newline='')
    12 csvWriter = csv.writer(f) # 写入器
    13 csvWriter.writerow(['标题','价格','评论数','店铺名','详情页']) # 写入表头
    14 
    15 def dropDown():
    16     """
    17     网页页面下滑函数
    18     :return:
    19     """
    20     for x in range(1, 12, 2): # 步长为2进行计算
    21         time.sleep(random.uniform(2, 5)) # 随机休眠
    22         y = x / 9 #
    23         # document.documentElement.scrollTop # 指定滚动条的位置
    24         # document.documentElement.scrollHeight # 获取浏览器页面的最大高度
    25         js = 'document.documentElement.scrollTop = document.documentElement.scrollHeight * %f' % (y)
    26         driver.execute_script(js) # 运行js语句
    27 
    28 url = 'https://www.jx.com/'
    29 # 定义浏览器
    30 driver = webdriver.Chrome()
    31 driver.maximize_window() # 最大化窗口
    32 driver.implicitly_wait(10) # 隐式等待,等待页面加载完成
    33 # 请求网址
    34 driver.get(url=url)
    35 # 找到搜索框并发送数据
    36 driver.find_element_by_css_selector('#key').clear() # 找到搜索框并清楚搜索框内容
    37 driver.find_element_by_css_selector('#key').send_keys(f'{keyWord}') # 找到搜索框并填入内容
    38 driver.find_element_by_css_selector('#search > div > div.form > button').click() # 点击搜索按钮
    39 # 搜索完后开始下滑页面加载当前页面所有数据
    40 dropDown()
    41 # 加载完后开始获取商品列表
    42 lis = driver.find_elements_by_css_selector('.gl-item') # 找到商品列表iterable
    43 for li in lis:
    44     price = li.find_element_by_css_selector('.gl-i-wrap .p-price strong i').text # 价格
    45     title = li.find_element_by_css_selector('.gl-item .p-name em').text # 标题
    46     comment = li.find_element_by_css_selector('.p-commit strong a').text # 评论
    47     shopName = li.find_element_by_css_selector('.p-shop span a').get_attribute('title') # 商家
    48     detailPage = li.find_element_by_css_selector('.p-name a').get_attribute('href') # 详情页
    49 
    50     print(title, price, comment, shopName, detailPage, sep=" | ")
    51     # 保存到csv
    52     csvWriter.writerow([title, price, comment, shopName, detailPage])
    53 
    54 f.close() # 关闭文档

    没有翻页,太晚了,懒得翻页懒得等。

    程序运行后结果截图:

     

  • 相关阅读:
    IMP本质上是一个通用的函数指针
    yourphp常用标签
    yourphp目录结构
    HTTP与HTTPS的区别
    https和http有什么区别
    如何把浏览器不信任的网址设置为可信任的网点
    ico图标在谷歌浏览器中如何显示?
    Yourphp是一款完全开源免费的.核心采用了Thinkphp框架
    No input file specified的解决方法apache伪静态
    一个服务器的吞吐率
  • 原文地址:https://www.cnblogs.com/mafu/p/15590600.html
Copyright © 2011-2022 走看看