• 爬取某东商品数据 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() # 关闭文档

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

    程序运行后结果截图:

     

  • 相关阅读:
    codevs 2602 最短路径问题x
    codevs 1077 多源最短路x
    2010TianjinRegional 部分题解
    [CF706D]Vasiliy's Multiset(异或字典树)
    [CF710E]Generate a String(DP)
    [CF710C]Magic Odd Square(构造)
    [CF151B]Phone Numbers(暴力,模拟)
    [POJ2104]K-th Number(主席树,静态区间k小)
    [CF707D]Persistent Bookcase(离线,DFS)
    [CF707C]Pythagorean Triples(数学)
  • 原文地址:https://www.cnblogs.com/mafu/p/15590600.html
Copyright © 2020-2023  润新知