Python爬虫实战 | 爬取拼多多商品的详情价格SKU数据

图片

本案例将为大家演示如何爬取拼多多商品的详情数据。目的是爬取大量的商品以及商品的评论,所以在程序设计上要考虑到该爬虫的高并发以及持久化存储。爬虫工具选用了Scrapy框架,以满足爬虫的高并发请求任务;持久化存储用了MongoDB,对直接存储JSON数据比较方便。

01

分析网页

拼多多触屏版一般是为了适配手机浏览器而做的版本,尽管触屏版在PC端的样式不适配,但并不影响数据浏览和抓包。在PC端浏览器中用调试工具查看请求信息,通过线索查找,并没有发现该网站实际获取数据的请求,但是每次下拉刷新页面确实有数据更新,在浏览器调试工具中没有看到新的请求的产生,是由于这个请求是网页内的Ajax请求,可以通过分析网站JavaScript源代码的方式,找到请求地址和参数规则,这是一种方法;第二种方法就是在后面介绍到的,用专业的抓包工具抓包分析网络请求。

常用的抓包工具有Fiddler、Charles、Wireshark等。本案例在分析网页请求时,使用Charles,以便更清楚地看到网络请求的过程。

Charles(Charles Web Debugging Proxy)是常用的网络封包截取工具,在移动开发中应用较多。使用Charles时,为了调试与服务器端的网络通信协议,经常需要截取网络封包来一并分析。Charles通过构建代理服务,让本地请求都通过Charles的代理之后访问公网,从而实现了网络封包的截取和分析。除了可以在做移动开发中调试端口外,Charles也可以用于分析第三方接口的通信协议。Charles的SSL功能还可以完成HTTPS协议分析。

Charles主要提供两种查看封包的视图:Structure和 Sequence。Structure视图能够将网络请求按访问的域名分类。例如,某个域名下如果有n个资源请求,则所有此域名下的请求都会被详细分类。视图则是按照请求发生的顺序来展示的。

Charles除了基本的抓包功能,还可以修改网络请求参数、支持模拟慢速网络、抓取手机端的请求、抓取部分HTTPS的包。

通过浏览网页发现,商品评论的URL,需要传入goods_id这个参数,所以需要首先爬取商品ID,商品ID可以在商品列表页看到,具体抓包的操作步骤如下。

(1) 在浏览器输入目标网址(拼多多触频版的网址),其列表页面如图12-1所示。

图片

■ 图12-1拼多多列表页面

(2) 向下滑动页面,同时在Charles中可以看到有域名为yangkeduo.com的请求产生。

(3) 将Charles视图模式切换至Structure,输入过滤条件yangkeduo,找到请求接口。

(4) 浏览网页,切换至详情页的评论。

(5) 在Charles中,找到评论接口的请求地址。

(6) 在浏览器中,测试找到的地址是否可用。

提示/

虽然Charles可以支持HTTPS抓包,在分析移动端应用网络请求时也是一个不可或缺的工具,但是随着移动安全技术的发展,很多移动App用到了SSL Pinning技术,即SSL双向验证,该技术可实现在客户端和服务器端的双向验证,移动端的壳加密技术也使移动端HTTPS抓包越来越困难,目前对抗SSL Pinning的技术,可行的方案是XPost框架,有兴趣的读者可以进一步了解相关知识。

通过上述分析,得到了商品列表接口(该接口为分析过程中的接口地址,接口地址会改版,此处仅做参考):

http://apiv3.yangkeduo.com/api/alexa/v1/goods?list_update_time=true&platform=1&assist_allowed=1&page=2&size=40

商品评论的接口地址是:

http://apiv3.yangkeduo.com/reviews/" + str(item['goods_id']) + "/list?&size=20",

爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的HTML内容。这通常通过HTTP请求库实现,如Python中的Requests库。 解析内容: 爬虫对获取的HTML进行解析,提取有用的信息。常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。 遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施,如验证码、IP封锁等。爬虫工程师需要设计相应的策略来应对这些挑战。 爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值