网站开发技术现状,网站开发与客户交流,免费加盟无需店面,重庆网站推广招聘来源 | 凹凸数据责编 | Carol封图 | CSDN 付费下载于视觉中国最近群里很多小伙伴对爬取手机App和小程序感兴趣#xff0c;今天本厨师将给大家呈现这道菜#xff0c;供小伙伴们品尝。相信大家都对爬虫有一定的了解#xff0c;我们爬PC端时候可以打开F12去观察url的变化#… 来源 | 凹凸数据责编 | Carol封图 | CSDN 付费下载于视觉中国最近群里很多小伙伴对爬取手机App和小程序感兴趣今天本厨师将给大家呈现这道菜供小伙伴们品尝。相信大家都对爬虫有一定的了解我们爬PC端时候可以打开F12去观察url的变化那么手机的发出请求我们应该怎么拦截呢。今天的主菜就是给大家介绍一个抓包工具Fiddler并用它烹煮一道广州房价爬虫。Fiddler是一个http调试工具也仅限于拦截http协议的请求这是它的短板之处但是对于我们平常的练习运用也足够了因为大多数网站都是走http协议。跟Fiddler同类型的抓包工具还有很多像Charles、Burpsuite等等。像其中Burpsuite的功能是比较强大的它们都是PC软件不是装在手机端有兴趣的小伙伴可以去了解一下。抓包工具 Fiddier话不多说我先教大家怎么设置Fiddler。主要三个步骤1、安装软件后打开Fiddler的Tools选项进行第一步分别对GeneralHTTPSConnections窗口进行如下设置。把该勾上的勾上后我们回到HTTPS这个界面点击Actions选择Trust安装证书。这时候我们的PC端的洗菜流程已经完成啦。2、接下来我们就要设置手机端我们既然要通过PC端拦截手机发出的请求就要设置手机的网络跟PC是同一个。网络下所以第二步我们要更改手机ip。我们先来看看你的PC断ip是多少。先打开cmd进入终端后输入ipconfig回车。就可以看到你的ip地址了。这时候终于轮到你的宝贝手机出场了熟练的连上你的wifi之后修改你的wifi设置点击高级选项后分别输入你的ip和端口后保存。3、大家是不是觉得很简单呢别高兴太早了最关键的一步到了在我们完成第一、二步设置后打开你的手机浏览器输入你的ip和端口号例127.0.0.1:8080回车这时候会跳转到一个下载手机端证书的页面下载后并信任证书后注某些安卓手机会要获得root权限才行这时候我们安装三部曲就大功告成了。万事俱备只欠东风食材都清洗好了现在我就教大家怎么利用Fiddler烹煮小程序。抓包实战先打开一个小程序网站我选择的是Q房网大家看菜下锅后Fiddler是不是变化了。这就是用fiddler拦截到你的手机发出请求的网页信息了和它的链接这个网页信息是通过json数据加载的。然后往上看Raw模块是获取请求头的地方。有了这两个信息我们的爬虫代码也就可以开始编写了。爬虫代码基操requests循环页数由于是获取的数据是json格式我们就要利用json.loads格式化抓取的信息才能进行一个数据提取。部分爬虫代码完整版下载见文末。url https://mapi.qfang.com/wechat/api/v3_2_0/room?dataSourceGUANGZHOUunionId这里也是微信idplatformwechatbizTypeSALEcurrentPage{}pageSize20keywordregionlspbarhgtofromPricetoPriceunitPricefromUnitPricetoUnitPrice
#爬取到50页程序就停止
for i in range(1,51):time.sleep(rand_seconds)url3 url.format(i)# print(url3)res session.get(urlurl3, headersheaders)# print(res.text)data json.loads(res.text)try:id_list data[result][list]# print(333,id_list)for i in id_list:id i[id]# print(id)url2 https://mapi.qfang.com/wechat/api/v3_2_0/room/detail?dataSourceGUANGZHOUunionId这里也是微信idplatformwechatid{}bizTypeSALEuserIdaccountLinkIdtop1originsale-list.format(id)time.sleep(rand_seconds)try:requests.adapters.DEFAULT_RETRIES 3res2 session.get(urlurl2, headersheaders, timeout10)except requests.exceptions.ConnectionError:requests.adapters.DEFAULT_RETRIES 3res2 session.get(urlurl2, headersheaders, timeout10)except requests.exceptions.ReadTimeout:requests.adapters.DEFAULT_RETRIES 3res2 session.get(urlurl2, headersheaders, timeout10)item {}res2_data json.loads(res2.text)try:roominfo res2_data[result][roomInfo]except KeyError:break爬取数据结果数据可视化菜做好了当然还要撒点香菜才能上桌啦做个简单可视化吧由于爬取的数据很干净我省掉清洗数据的环节直接上手在各位群大佬面前献丑了。我们先来看看该网站的广州二手房的最高价和最低价这最高价的数字太感人了.... 这多少个0我都数不对。import pandas as pd
import matplotlib.pyplot as pltdf pd.read_csv(rF:\PycharmProjects\house_spider\广州二手房.csv, encodinggbk)
# print(df)
df df.astype({price: float64}) #先将价格的类型转为浮点数方便后面计算
df_max df[price].max() #查看爬取的数据中房价最高的价格
df_min df[price].min() #房价最低的价格
print(广州二手房最高价%s最低价%s%(df_max,df_min))re_price [region, price]# 分组统计数量
price_df df[re_price]
# #根据区域价格计算区域房价均价
region_mean_price price_df.groupby([region],as_indexFalse)[price].agg({mean_price:mean})
region_mean_price region_mean_price.sort_values(bymean_price)
print(region_mean_price)#利用循环提取已经处理好的区域和它的均值
for x,y in zip(region_mean_price.region, region_mean_price.mean_price):plt.text(x, y,%.0f %y, hacenter, va bottom,fontsize11)# 显示柱状图值
plt.bar(region_mean_price.region, region_mean_price.mean_price, width0.8, colorrgby)
plt.show()继续继续我们来统计一下广州各区的房价然后算出各个区域均值通过groupby分组统计出region_mean_price豆腐内心os原来黄埔房价都那么高了各网站数据的差异性也会导致最终展示的结果不一样大家可以选个大网站试试到此我们这次利用工具抓包小程序网站的介绍就结束了大家也可以试试app原理一样。谢谢大家观看拜拜咯~本文涉及爬虫、可视化代码下载https://alltodata.cowtransfer.com/s/f0b70e0c24164c 推荐阅读震惊阿里的程序员竟被一个简单的 SQL 查询难住了巧用 Trie 树实现搜索引擎关键词提示功能手把手教你配置VS Code 远程开发工具工作效率提升N倍诺基亚的百年沉浮亚马逊创始人或成地球首位万亿富豪设计“女人流程图”找对象不一般的贝佐斯超级账本Hyperledger Fabric中的Protobuf到底是什么Go远超Python机器学习人才极度稀缺全球16,655位程序员告诉你这些真相真香朕在看了