以【某程旅行】为例,讲述小程序爬虫技术

简介: 使用Mitmproxy进行抓取数据包

大家好,我是辰哥~~~

前提:在学习本文采集小程序数据之前,相信大家都掌握了抓取数据包的技能,比如使用Mitmproxy进行抓取数据包。如果看到这里的你还没有掌握的话,可以参与辰哥之前的写的一篇关于mitmproxy使用的文章(实战|手把手教你如何使用抓包神器MitmProxy)。

本文目标:利用Mitmproxy抓取某程小程序景点数据,并实现翻页(下一页)循环爬取。

思路:

1、利用Mitmproxy抓取数据包,并进行分析

2、利用分析的结果,编写Python代码进行提取数据,并进行实现下一页采集

01、mitmproxy抓取数据包

1.启动mitmproxy

先配置好手机的代理IP和启动mitmproxy

在终端中启动mitmweb

mitmweb

在浏览器中查看数据包(输入mitmweb会自动在浏览器中打开网页,如果没有打开的则手动输入)

http://127.0.0.1:8081/#/flows

2.访问小程序

打开同程旅行小程序,点击全部景点

可以看到页面中出现了景点列表:

3.浏览器中查看数据包

上图中红框部分是景点列表的api接口,点击response查看返回的数据。

02、Python解析数据包

1.分析接口

经过分析,发现该接口是没有反爬(签名验证),因此通过这个接口可以直接爬取多页数据,比如修改接口链接中的参数

参数:

page页数

PageSize条数

CityId城市

keyword关键词

...

因此通过修改page就可以获取全部景点数据。

得知接口链接,在python中通过requests请求去获取数据,这种方式我们都会。

import requests
### 获取第1页~第10页数据
for p in range(1,11):
    # 页数
    url = "https://wx.17u.cn/scenery/json/scenerylist.html?PosCityId=78&CityId=53&page="+str(p)+"&sorttype=0&PageSize=20&IsSurrounding=1&isSmallPro=1&isTcSmallPro=1&isEncode=0&Lon=113.87234497070312&Lat=22.90543556213379&issearchbytimenow=0&IsNeedCount=1&keyword=&IsPoi=0&status=2&CityArea=5&Grades=&IsSearchKeyWordScenery=1"
    response = requests.get(url).json()
    print(response)

今天我们用另一种方式去获取数据,这种方式可以用于绕过接口签名验证的反爬,比如sign或者x-sign等签名加密参数。

2.直接解析数据包

相信看了辰哥的这篇文章(实战|手把手教你如何使用抓包神器MitmProxy)的读者都知道,mitmproxy抓取的数据包,除了在浏览器可以查看外,还可以编写的python代码一边抓取数据包,一边进行解析。

先看一下python可以获取数据包的那些数据(下图仅写成部分常用的)

在终端中调用上面的py代码,结果如下:

下面开始真正编写python代码,将景点数据直接保存在txt中。

在chenge.py文件中,修改response函数部分(如上图)

启动程序:

mitmdump.exe -s chenge.py

api接口返回的数据前面包含了:

"state":"100","error":"查询成功"

因此判断响应的数据中包含这个内容说明是含有景点列表的

景点列表数据在json数据的sceneryinfo字段中。我们将字段(name、address、grade)的内容取出来保存到txt文件中,并命名为景点.txt

在小程序中向下滑动,加载更多数据,同时mitmproxy继续抓包,对应的python程序将继续保存数据到txt中。

ps:这里仅讲述技术的使用,就没有去将数据完整爬取下来,并且为了演示数据可以保存,也暂时保存到txt,读者可以根据需要保存到数据库或者excel。

03、小结

本文目标:利用Mitmproxy抓取某程旅行小程序景点数据,并实现翻页(下一页)循环爬取。并且还讲述了如何通过mitmproxy绕过接口签名验证的反爬,比如sign或者x-sign等签名加密参数(虽然本文没有加密参数,但是技术大家可以先掌握,在遇到的时可以使用)

不会的小伙伴,感觉动手练习!!!!最后说一声:原创不易,求给个赞!

相关文章
|
2月前
|
数据采集 数据可视化 JavaScript
用 通义灵码和 PyQt5 爬虫智能体轻松爬取掘金,自动化采集技术文章和数据
本文介绍了如何利用智能开发工具通义灵码和Python的PyQt5框架,构建一个自动化爬取掘金网站技术文章和数据的智能爬虫系统。通过通义灵码提高代码编写效率,使用PyQt5创建可视化界面,实现对爬虫任务的动态控制与管理。同时,还讲解了应对反爬机制、动态内容加载及数据清洗等关键技术点,帮助开发者高效获取并处理网络信息。
|
3月前
|
数据采集 Java API
深度解析:爬虫技术获取淘宝商品详情并封装为API的全流程应用
本文探讨了如何利用爬虫技术获取淘宝商品详情并封装为API。首先介绍了爬虫的核心原理与工具,包括Python的Requests、BeautifulSoup和Scrapy等库。接着通过实战案例展示了如何分析淘宝商品页面结构、编写爬虫代码以及突破反爬虫策略。随后讲解了如何使用Flask框架将数据封装为API,并部署到服务器供外部访问。最后强调了在开发过程中需遵守法律与道德规范,确保数据使用的合法性和正当性。
|
4月前
|
移动开发 小程序 JavaScript
小程序与快应用:中国移动互联网的渐进式革命——卓伊凡的技术演进观
小程序与快应用:中国移动互联网的渐进式革命——卓伊凡的技术演进观
161 12
小程序与快应用:中国移动互联网的渐进式革命——卓伊凡的技术演进观
|
2月前
|
小程序 安全 JavaScript
构建即时通讯APP内的小程序生态体系:从架构设计到技术实现-优雅草卓伊凡
构建即时通讯APP内的小程序生态体系:从架构设计到技术实现-优雅草卓伊凡
156 1
构建即时通讯APP内的小程序生态体系:从架构设计到技术实现-优雅草卓伊凡
|
2月前
|
数据采集 自然语言处理 分布式计算
大数据岗位技能需求挖掘:Python爬虫与NLP技术结合
大数据岗位技能需求挖掘:Python爬虫与NLP技术结合
|
3月前
|
数据采集 Web App开发 JavaScript
无头浏览器技术:Python爬虫如何精准模拟搜索点击
无头浏览器技术:Python爬虫如何精准模拟搜索点击
|
9月前
|
数据采集 搜索推荐 数据安全/隐私保护
Referer头部在网站反爬虫技术中的运用
Referer头部在网站反爬虫技术中的运用
|
10月前
|
数据采集 监控 数据库
爬虫技术详解:从原理到实践
本文详细介绍了爬虫技术,从基本概念到实际操作,涵盖爬虫定义、工作流程及Python实现方法。通过使用`requests`和`BeautifulSoup`库,演示了如何发送请求、解析响应、提取和保存数据,适合初学者学习。强调了遵守法律法规的重要性。
2971 4
|
6月前
|
人工智能 自然语言处理 小程序
技术小白如何利用DeepSeek半小时开发微信小程序?
通过通义灵码的“AI程序员”功能,即使没有编程基础也能轻松创建小程序或网页。借助DeepSeek V3和R1满血版模型,用户只需用自然语言描述需求,就能自动生成代码并优化程序。例如,一个文科生仅通过描述需求就成功开发了一款记录日常活动的微信小程序。此外,通义灵码还提供智能问答模式,帮助用户解决开发中的各种问题,极大简化了开发流程,让普通人的开发体验更加顺畅。
1926 11
技术小白如何利用DeepSeek半小时开发微信小程序?
|
5月前
|
数据采集 XML 存储
Headers池技术在Python爬虫反反爬中的应用
Headers池技术在Python爬虫反反爬中的应用

热门文章

最新文章