爬虫 - 项目学习 - 基于 selenium 爬取京东

本文详细介绍了如何利用selenium爬取京东网站的商品信息,包括界面分析、主页面查询、商品页面数据获取、翻页技巧以及在使用chromedriver过程中遇到的问题和解决方案,如翻页元素未找到、不可点击错误等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、界面分析

二、主页面查询,数据跳转商品页面

三、商品页面获取商品信息

四、商品页面翻页获取数据

五、综合封装,获取多页指定商品数据

六、注意事项及错误总结

6-1 翻页使用上方的'>'时报未查到元素错误

6-2 翻页使用上方的'>'时报不可点击错误

6-3 使用 chromedriver 的错误总结

6-3-1 封装在函数内的页面自动关闭

6-3-2 转跳页面错误 - 模拟点击转跳,却刷新数据的错误


一、界面分析

主页面有且只有一个id为key的输入框

主页面有且只有一个button标签内class为button 的按钮 

商品浏览页结构

需求信息:商品名称、商品详情链接、商品价格、商品评论数量

商品页面有且只有一个class固定为fp-next的下一页

上下俩个唯一class的按钮都可以进行翻页操作,任选一个进行模拟点击 

 

二、主页面查询,数据跳转商品页面

from selenium import webdriver
from selenium.webdriver.common.keys import Keys #键盘按键操作


# 主页面信息查询跳转商品页面
url = 'https://www.jd.com/'
keyword = 'iphone'

driver = webdriver.Chrome()
driver.get(url)
driver.implicitly_wait(3) # 隐式等待,模拟浏览
try:
    input_info = driver.find_element_by_id('key')
    input_info.send_keys(keyword)
    input_info.send_keys(Keys.ENTER)
finally:
    pass
    # driver.close()

三、商品页面获取商品信息

    # 获取所有单个商品信息列表
    goods = driver.find_eleme
功能介绍 京东与1688项目两个项目具有极高的相似度,我首先写的京东爬虫,再写的1688爬虫,1688爬虫基于京东爬虫的构建思路,因此1688爬虫会比京东爬虫更深入,两者也会有一些重复的部分。 1、selenium反侦察。通过自动化工具,可以模拟正常人类的操作,但还是会有一些检测方式,可以检查到selenium之类的工具。这两个项目里配置了一个Chrome浏览器选项,开启了浏览器开发者模式,防止被爬网站通过js代码检查到自动化工具。可能还会有其他的反侦察方法,待我们继续深挖。 2、输入关键字查询,爬取显示页面所有商品。京东项目里面会爬取每个商品的商品名、店铺、价格、好评率。1688项目爬取分两部分,一个商品,一个店铺。商品里包括的信息:商品名、店铺地址、价格(以json字符串存入的数据库)、搜索关键字。店铺里包括的信息:店铺地址、店铺名、货描、响应、发货速度。 3、1688项目有店铺去重的功能。在搜索页面中,有许多店铺重复了,这里用redis的set保存了店铺的地址,如果店铺地址没有在set中,那就插入mysql数据库,反之则不插入。 4、1688项目异常处理。有些地方数据解析不到,解析不到就跳过当前的解析,进行下一次解析,不会出现程序运行停止的情况。 另外内含详细截图+详细部署视频,还对过程中可能出现的问题进行了汇总,对于正在学习这方面的你是一个很好的选择,希望对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值