使用Python和Selenium爬取京东商品数据

简介❤❤

码农不是吗喽(大学生版)-CSDN博客

在本文中,我们将探讨如何使用Python编程语言结合Selenium库来爬取京东网站上的商品数据。Selenium是一个强大的工具,可以模拟真实用户对网页的交互操作,非常适合进行网页自动化测试和数据抓取。

一、环境准备🎉

(❤ ω ❤)

  • Python 3.x
  • Selenium库
  • lxml库
  • ChromeDriver或EdgeDriver(根据使用的浏览器)

二、正文🎃

1. 导入必要的库

首先,我们需要导入Selenium WebDriver以及lxml库,用于解析网页源代码。

from selenium import webdriver
from selenium.webdriver.common.by import By
from lxml import etree
import time

2. 设置WebDriver

接下来,初始化WebDriver,这里我们使用的是Edge浏览器。

driver = webdriver.Edge()
driver.maximize_window()

3. 编写爬虫函数

定义一个函数get_info来获取商品信息,并通过递归调用NextPage函数来实现翻页。

def get_info(url, page):
    page = page + 1
    driver.get(url)
    driver.implicitly_wait(10)
    selector = etree.HTML(driver.page_source)
    infos = selector.xpath('//*[@id="J_goodsList"]/ul/li')  # 修改XPath选择器以匹配正确的元素
    for info in infos:
        price = info.xpath('.//div[3]/strong/i/text()')[0]  # 确保返回的是列表,并使用[0]获取第一个元素
        print(price)
        shop = info.xpath('.//div[7]/span/a/text()')[0]  # 同上
        print(shop)
    if page <= 5:
        NextPage(url, page)
    # else部分不需要,可以删除

4. 翻页逻辑

定义NextPage函数来处理翻页逻辑,并在找不到下一页按钮时给出提示。

def NextPage(url, page):
    driver.get(url)
    driver.implicitly_wait(10)
    try:
        driver.find_element_by_xpath('//*[@id="J_bottomPage"]').click()  # 确保元素存在
    except:
        print("没有找到下一页按钮,可能已经到最后一页或页面结构有变化。")
    time.sleep(10)
    driver.get(driver.current_url)
    driver.implicitly_wait(10)
    get_info(driver.current_url, page)

5. 主函数

编写主函数来启动爬虫,首先访问京东首页,搜索“手机”,然后开始爬取商品数据。

if __name__ == '__main__':
    page = 1
    url = 'https://www.jd.com/'
    driver.get(url)
    driver.implicitly_wait(10)

    # 使用By.ID来指定查找元素的方式
    driver.find_element(By.ID, 'key').clear()
    driver.find_element(By.ID, 'key').send_keys('手机')

    # 假设'button'是按钮元素的class name
    driver.find_element(By.CLASS_NAME, 'button').click()
    time.sleep(3)
    get_info(driver.current_url, page)

五、结论

本文介绍了使用Python和Selenium库爬取京东商品数据的方法。通过编写自动化脚本,我们可以高效地获取网页上的数据,为数据分析和市场研究提供支持。

参考文献

 

 

 

 

 

 

 

相关推荐

  1. 使用PythonSelenium京东商品数据

    2024-07-17 14:42:05       26 阅读
  2. 运用selenium京东商品数据储存到MySQL数据库

    2024-07-17 14:42:05       34 阅读
  3. Pyhton爬虫实战】京东商城商品信息

    2024-07-17 14:42:05       30 阅读
  4. 京东商品图片的Python实现方法

    2024-07-17 14:42:05       32 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-17 14:42:05       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-17 14:42:05       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-17 14:42:05       62 阅读
  4. Python语言-面向对象

    2024-07-17 14:42:05       72 阅读

热门阅读

  1. Python应用—从pdf中保存图片

    2024-07-17 14:42:05       22 阅读
  2. 数据结构第32节 无锁编程

    2024-07-17 14:42:05       26 阅读
  3. PIMPL 模式 以及Q_DECLARE_PUBLIC 与 Q_DECLARE_PRIVATE

    2024-07-17 14:42:05       23 阅读
  4. Ipython使用技巧整理

    2024-07-17 14:42:05       24 阅读
  5. 第九章 输入输出(Python)

    2024-07-17 14:42:05       24 阅读
  6. python文件对象数据库常用推荐

    2024-07-17 14:42:05       23 阅读
  7. C#实现字符串模糊匹配

    2024-07-17 14:42:05       22 阅读
  8. python与OCR识别的库存有哪些?

    2024-07-17 14:42:05       24 阅读
  9. 【乐吾乐2D可视化组态编辑器】事件

    2024-07-17 14:42:05       27 阅读
  10. spring 中的字节码文件访问 -- classreading 包

    2024-07-17 14:42:05       22 阅读