[爬虫]Python+Selenium 爬取京东商城,翻页功能实现

在使用Python Selenium爬取京东商城时遇到翻页功能问题,由于页面动态加载导致元素失效。分析发现每页由两个page组成,页面滚动会触发新的加载。解决方案是等待页面加载后,通过JavaScript滚动至底部加载完整页面,再执行后续操作。

问题描述

最近学习爬虫,爬京东页面做翻页功能时遇到了问题
我的初始想法是这样的:
这个是京东的转页模块
在这里插入图片描述

  1. 修改页码输入的文本框,填入要跳转到页数
  2. 点击“确定”按钮,实现跳转

代码如下:

def next_page(page_number):
    try:
        # 获取页码文本框
        input = wait.until(
            EC.presence_of_element_located((By.CSS_SELECTOR, '#J_bottomPage > span.p-skip > input'))
        )
        # 获取“确认”按钮
        submit = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR
Selenium是一个强大的自动化测试工具,但也可以用于网络爬虫,特别是在需要模拟用户交互或者处理动态加载内容的场景中。要爬取京东商城的数据,你需要按照以下步骤操作: 1. **安装Selenium**:首先在Python环境中安装selenium库以及对应的浏览器驱动(如ChromeDriver),通过pip命令: ``` pip install selenium ``` 2. **导入所需模块**: ```python from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC ``` 3. **创建浏览器实例**: ```python driver = webdriver.Chrome() # 或者换成Firefox等其他浏览器 ``` 4. **打开京东页面**: ```python driver.get('https://www.jdx.com/') ``` 5. **解析HTML**: 使用`driver.page_source`获取当前页面源码,然后可以使用BeautifulSoup、lxml等库来解析HTML,提取所需的数据。 6. **遍历和选择元素**: 使用Selenium提供的定位方法(例如`find_element_by_id`、`find_elements_by_css_selector`等)找到需要的数据元素。 7. **处理动态加载内容**: 如果内容是通过JavaScript动态加载的,Selenium需要等待条件满足再继续抓取。可以设置`WebDriverWait`等待特定元素出现或某些事件发生。 8. **网页翻页**: 通常,京东的商品列表会包含分页链接。通过分析这些链接并点击它们,可以实现翻页功能。你可以使用类似这样的循环: ```python while True: next_page_button = driver.find_element_by_css_selector(".next-page") if not next_page_button.is_displayed(): break next_page_button.click() ``` 9. **保存数据**: 抓取到的数据通常存储为CSV、JSON或其他文件格式,或者直接插入数据库。 10. **编写爬虫程序**: 将以上步骤封装成函数或类,并考虑异常处理和错误日志记录。
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值