爬虫案例:python爬取京东商品数据||京东商品详情SKU价格

devtools/2025/1/17 0:03:35/

网址:https://www.jd.com/

基于当下的淘宝网站反扒机制太严格,即使通过模拟浏览来获取,依旧比较难,因此选择京东这个平台来练习一下通过模拟浏览器来进行数据获取。

1、爬取思路

(1)本次爬取的内容为京东商城(https://www.jd.com/)上手机商品信息,如下图:

图片

(2)本次是模拟浏览器的搜索操作,获取相应的网页,并不是请求网页,因此需要找到搜索位置,填写搜索商品名称进行搜索,“检查”搜索框元素,如下图:

图片

发现这个搜索框的id=key,因此,先清理元素默认的搜索产品,然后填写搜索商品手机,模拟相关动作的代码如下:

from selenium import webdriverdriver.find_element_by_id('key').clear()driver.find_element_by_id('key').send_keys('手机')

然后,还需要点击搜索,具体的位置如下:

图片

找到按钮的属性后,可以使用如下代码模拟按钮动作,才能打开手机的搜索页面,代码如下:

driver.find_element_by_class_name('button').click()

(3)过去都是通过观察不同页面的URL规律,来构造URL。但是模拟浏览器就不一样的, 可以看到页面底部有翻页按钮,需要做的是找到按钮路径处,然后模拟翻页动作,找到新页面的URL。

图片

选中开发者模式里面的红框,右键选择copy->copy Xpath,可以找到翻页的路径,可以通过如下代码模拟点击:

driver.find_element_by_xpath('//*[@id="J_bottomPage"]').click()

(4)本次简单爬取一下手机的价格和店铺名称来模拟浏览器数据获取,商品的其它信息有兴趣的同学可以根据自己需要自行补充。

图片

备注:针对要爬取商品名称的,建议获取有效的商品链接,进入详情页面,可以根据需要获取更多的商品基础信息。

2、爬取代码

from selenium import webdriverfrom lxml import etreeimport timedriver=webdriver.Chrome()driver.maximize_window()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')   for info in infos:       price = info.xpath('li/div/div[3]/strong/i/text()')       print(price)       shop = info.xpath('li/div/div[7]/span/a/text()')       print(shop)   if page <= 5:       NextPage(url, page)   else:       pass   def NextPage(url, page):   driver.get(url)   driver.implicitly_wait(10)   driver.find_element_by_xpath('//*[@id="J_bottomPage"]').click()   time.sleep(10)   driver.get(driver.current_url)   driver.implicitly_wait(10)   get_info(driver.current_url, page)
if __name__=='__main__':   page=1   url='https://www.jd.com/'   driver.get(url)   driver.implicitly_wait(10)   driver.find_element_by_id('key').clear()   driver.find_element_by_id('key').send_keys('手机')   driver.find_element_by_class_name('button').click()   time.sleep(3)   get_info(driver.current_url, page)

备注:很多时候经常会遇到报错是浏览器的驱动和现有的浏览器不对应,因此需要去下载相对应的驱动后才能正常模拟浏览器进行数据获取。

运行结果如下:

图片


http://www.ppmy.cn/devtools/151113.html

相关文章

链路追踪SkyWalking

链路追踪 链路追踪作用链路追踪的关键概念链路追踪的工作原理常用链路追踪工具链路追踪的实现步骤链路追踪的典型场景 SkyWalkingSkyWalking 的主要功能SkyWalking 的架构安装 SkyWalking从 SkyWalking 的官方 GitHub 仓库 下载最新版本。配置后端存储SkyWalking使用&#xff0…

Dify应用-工作流

目录 DIFY 工作流参考 DIFY 工作流 2025-1-15 老规矩感谢参考文章的作者,避免走弯路。 2025-1-15 方便容易上手 在dify的一个桌面上,添加多个节点来完成一个任务。 每个工作流必须有一个开始和结束节点。 节点之间用线连接即可。 每个节点可以有输入和输出 输出类型有,字符串,…

Linux Centos 安装Jenkins到服务

一、前言 假设你已经下载了jenkins.war 安装了对应的jdk&#xff0c;下面我们来安装jenkins&#xff0c;以服务的形式安装。 二、安装 1&#xff09;将jenkins.war拷贝到合适的位置&#xff0c;我的位置 /u01/jenkins/ &#xff0c;位置你自己选。 2&#xff09;创建系统用户…

光谱相机的光谱分辨率可以达到多少?

多光谱相机 多光谱相机的光谱分辨率相对较低&#xff0c;波段数一般在 10 到 20 个左右&#xff0c;光谱分辨率通常在几十纳米到几百纳米之间&#xff0c;如常见的多光谱相机光谱分辨率为 100nm 左右。 高光谱相机 一般的高光谱相机光谱分辨率可达 2.5nm 到 10nm 左右&#x…

WEB 攻防-通用漏-XSS 跨站脚本攻击-反射型/存储型/DOMBEEF-XSS

XSS跨站脚本攻击技术&#xff08;一&#xff09; XSS的定义 XSS攻击&#xff0c;全称为跨站脚本攻击&#xff0c;是指攻击者通过在网页中插入恶意脚本代码&#xff0c;当用户浏览该网页时&#xff0c;恶意脚本会被执行&#xff0c;从而达到攻击目的的一种安全漏洞。这些恶意脚…

依赖网络系统混合级联故障下系统可靠性提高与弹性的组合优化

题目&#xff1a;Combined optimization of system reliability improvement and resilience with mixed cascading failures in dependent network systems 作者&#xff1a;Jian Zhou 关键词: 级联故障 网络依赖 硬化与修复的联合优化弹性增强 摘要 现代社会的有效运行在很…

语音识别的预训练模型

语音识别的预训练模型 语音识别模型 大致分为两类: 连接时序分类(Connectionist Temporal Classification, CTC):仅编码器(encoder-only)的模型,顶部带有线性分类(CTC)头序列到序列(Sequence-to-sequence, Seq2Seq):编码器-解码器(encoder-decoder)模型,编码器…

实用好软-----电脑端链接手机 免root权限管理手机 调试安卓

来自知名开发者开发。而且近期更新了全功能的搞机工具。对于链接电脑进行管理手机比较方便。新版重写了多线程逻辑&#xff0c;修复大量卡顿与无响应问题&#xff0c;同时优化了设备检测逻辑&#xff0c;启动更快更丝滑。还有大量新增免ROOT功能。对于玩机来说非常不错 由于AD…