网站做sem优化,诸城手机网站建设,六安百度公司电话,网站受到攻击怎么办本案例将为大家演示如何爬取拼多多商品的详情数据。目的是爬取大量的商品以及商品的评论#xff0c;所以在程序设计上要考虑到该爬虫的高并发以及持久化存储。爬虫工具选用了Scrapy框架#xff0c;以满足爬虫的高并发请求任务#xff1b;持久化存储用了MongoDB#xff0c;对… 本案例将为大家演示如何爬取拼多多商品的详情数据。目的是爬取大量的商品以及商品的评论所以在程序设计上要考虑到该爬虫的高并发以及持久化存储。爬虫工具选用了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中可以看到有域名为yangkeduocom的请求产生。
(3) 将Charles视图模式切换至Structure输入过滤条件yangkeduo找到请求接口。
(4) 浏览网页切换至详情页的评论。
(5) 在Charles中找到评论接口的请求地址。
(6) 在浏览器中测试找到的地址是否可用。 提示/ 虽然Charles可以支持HTTPS抓包在分析移动端应用网络请求时也是一个不可或缺的工具但是随着移动安全技术的发展很多移动App用到了SSL Pinning技术即SSL双向验证该技术可实现在客户端和服务器端的双向验证移动端的壳加密技术也使移动端HTTPS抓包越来越困难目前对抗SSL Pinning的技术可行的方案是XPost框架有兴趣的读者可以进一步了解相关知识。
通过上述分析得到了商品列表接口(该接口为分析过程中的接口地址接口地址会改版此处仅做参考)
http//apiv3yangkeduocom/api/alexa/v1/goods?list_update_timetrueplatform1assist_allowed1page2size40
商品评论的接口地址是
http//apiv3yangkeduocom/reviews/ str(itemgoods_id) /list?size20,