亚洲农村老熟妇肥BBBB_无码人妻精品一区二区蜜桃色_精品亚洲AⅤ无码午夜在线观看_中文字幕熟妇人妻在线视频_囯产色无码精品视频免费

當(dāng)前位置: 首頁(yè) > 科技新聞 >

對(duì)不起,我把APP也給爬了

時(shí)間:2020-05-25 15:43來(lái)源:網(wǎng)絡(luò)整理 瀏覽:
↑ “凹凸數(shù)據(jù)” 關(guān)注 + 星標(biāo) ~ 每天更新,大概率是晚9點(diǎn) 【凹凸數(shù)據(jù)】 最近更新了一系列爬蟲 這次終于將“罪惡”的小手伸向了A

↑ “凹凸數(shù)據(jù)” 關(guān)注 + 星標(biāo) ~

每天更新,大概率是晚9點(diǎn)

【凹凸數(shù)據(jù)】 最近更新了一系列爬蟲

這次終于將“罪惡”的小手伸向了APP

下面有請(qǐng)今日的爬蟲師——

大家好,我是銀牌廚師豆腐!

最近群里很多小伙伴對(duì)爬取手機(jī)app和小程序感興趣,今天本廚師將給大家呈現(xiàn)這道菜,供小伙伴們品嘗。

相信大家都對(duì)爬蟲有一定的了解,我們爬PC端時(shí)候可以打開F12去觀察url的變化,那么手機(jī)的發(fā)出請(qǐng)求我們應(yīng)該怎么攔截呢。

今天的主菜就是給大家介紹一個(gè)抓包工具Fiddler,并用它烹煮一道廣州房?jī)r(jià)爬蟲。

Fiddler是一個(gè)http調(diào)試工具,也僅限于攔截http協(xié)議的請(qǐng)求,這是它的短板之處,但是對(duì)于我們平常的練習(xí)運(yùn)用也足夠了,因?yàn)榇蠖鄶?shù)網(wǎng)站都是走h(yuǎn)ttp協(xié)議。跟Fiddler同類型的抓包工具還有很多,像Charles、Burpsuite等等

像其中Burpsuite的功能是比較強(qiáng)大的,它們都是PC軟件,不是裝在手機(jī)端,有興趣的小伙伴可以去了解一下

抓包工具Fiddler

話不多說(shuō),我先教大家怎么設(shè)置Fiddler。

主要三個(gè)步驟:

1、安裝軟件后,打開Fiddler的Tools選項(xiàng),進(jìn)行第一步,分別對(duì)General,HTTPS,Connections窗口進(jìn)行如下設(shè)置

把該勾上的勾上后,我們回到HTTPS這個(gè)界面,點(diǎn)擊Actions,選擇Trust,安裝證書,

這時(shí)候我們的PC端的洗菜流程已經(jīng)完成啦

2、接下來(lái)我們就要設(shè)置手機(jī)端,我們既然要通過(guò)PC端攔截手機(jī)發(fā)出的請(qǐng)求,就要設(shè)置手機(jī)的網(wǎng)絡(luò)跟PC是同一個(gè)

網(wǎng)絡(luò)下,所以第二步,我們要更改手機(jī)ip。我們先來(lái)看看你的PC斷ip是多少。先打開cmd進(jìn)入終端后,輸入ipconfig回車

就可以看到你的ip地址了

這時(shí)候終于輪到你的寶貝手機(jī)出場(chǎng)了,熟練的連上你的wifi之后,修改你的wifi設(shè)置,點(diǎn)擊高級(jí)選項(xiàng)后,分別輸入你的ip和端口后保存。

3、大家是不是覺得很簡(jiǎn)單呢,別高興太早了!最關(guān)鍵的一步到了,在我們完成第一、二步設(shè)置后,打開你的手機(jī)瀏覽器輸入你的ip和端口號(hào)(例127.0.0.1:8080),回車,這時(shí)候會(huì)跳轉(zhuǎn)到一個(gè)下載手機(jī)端證書的頁(yè)面,下載后并信任證書后(注:某些安卓手機(jī)會(huì)要獲得root權(quán)限才行),這時(shí)候,我們安裝三部曲就大功告成了。

萬(wàn)事俱備,只欠東風(fēng),食材都清洗好了,現(xiàn)在我就教大家怎么利用Fiddler烹煮小程序。

抓包實(shí)戰(zhàn)

先打開一個(gè)小程序網(wǎng)站,我選擇的是Q房網(wǎng),大家看,菜下鍋后,F(xiàn)iddler是不是變化了。

這就是用fiddler攔截到你的手機(jī)發(fā)出請(qǐng)求的網(wǎng)頁(yè)信息了和它的鏈接,這個(gè)網(wǎng)頁(yè)信息是通過(guò)json數(shù)據(jù)加載的

然后往上看,Raw模塊是獲取請(qǐng)求頭的地方

有了這兩個(gè)信息,我們的爬蟲代碼也就可以開始編寫了

爬蟲代碼

基操requests,循環(huán)頁(yè)數(shù),由于是獲取的數(shù)據(jù)是json格式,我們就要利用json.loads格式化抓取的信息,才能進(jìn)行一個(gè)數(shù)據(jù)提取。

部分爬蟲代碼,完整版下載見文末

url = 'https://mapi.qfang.com/wechat/api/v3_2_0/room?dataSource=GUANGZHOU&unionId=這里也是微信id&platform=wechat&bizType=SALE&currentPage={}&pageSize=20&keyword=&region=&l=&s=&p=&b=&a=&r=&h=&g=&t=&o=&fromPrice=&toPrice=&unitPrice=&fromUnitPrice=&toUnitPrice='

#爬取到50頁(yè),程序就停止

fori inrange( 1, 51):

time.sleep(rand_seconds)

url3 = url.format(i)

# print(url3)

res = session.get(url=url3, headers=headers)

# print(res.text)

data = json.loads(res.text)

try:

id_list = data[ 'result'][ 'list']

# print(333,id_list)

fori inid_list:

id = i[ 'id']

# print(id)

url2 = 'https://mapi.qfang.com/wechat/api/v3_2_0/room/detail?dataSource=GUANGZHOU&unionId=這里也是微信id&platform=wechat&id={}&bizType=SALE&userId=&accountLinkId=&top=1&origin=sale-list'.format(

id)

time.sleep(rand_seconds)

try:

requests.adapters.DEFAULT_RETRIES = 3

res2 = session.get(url=url2, headers=headers, timeout= 10)

exceptrequests.exceptions.Connecti:

requests.adapters.DEFAULT_RETRIES = 3

res2 = session.get(url=url2, headers=headers, timeout= 10)

exceptrequests.exceptions.ReadTimeout:

requests.adapters.DEFAULT_RETRIES = 3

res2 = session.get(url=url2, headers=headers, timeout= 10)

item = {}

res2_data = json.loads(res2.text)

try:

roominfo = res2_data[ 'result'][ 'roomInfo']

exceptKeyError:

break

爬取數(shù)據(jù)結(jié)果:

數(shù)據(jù)可視化

菜做好了,當(dāng)然還要撒點(diǎn)香菜才能上桌啦,做個(gè)簡(jiǎn)單可視化吧,由于爬取的數(shù)據(jù)很干凈,我省掉清洗數(shù)據(jù)的環(huán)節(jié),直接上手,在各位群大佬面前獻(xiàn)丑了。

我們先來(lái)看看該網(wǎng)站的廣州二手房的最高價(jià)和最低價(jià),這最高價(jià)的數(shù)字太感人了.... 這多少個(gè)0我都數(shù)不對(duì)

importpandas aspd

importmatplotlib.pyplot asplt

df = pd.read_csv( r'F:PycharmProjectshouse_spider廣州二手房.csv', encoding= 'gbk')

# print(df)

df = df.astype({ 'price': 'float64'}) #先將價(jià)格的類型轉(zhuǎn)為浮點(diǎn)數(shù),方便后面計(jì)算

df_max = df[ 'price'].max #查看爬取的數(shù)據(jù)中房?jī)r(jià)最高的價(jià)格

df_min =df[ 'price'].min #房?jī)r(jià)最低的價(jià)格

print( '廣州二手房最高價(jià):%s,最低價(jià):%s'%(df_max,df_min))

re_price = [ 'region', 'price']

# 分組統(tǒng)計(jì)數(shù)量

price_df = df[re_price]

# #根據(jù)區(qū)域價(jià)格計(jì)算區(qū)域房?jī)r(jià)均價(jià)

region_mean_price = price_df.groupby([ 'region'],as_index= False)[ 'price'].agg({ 'mean_price': 'mean'})

region_mean_price = region_mean_price.sort_values(by= 'mean_price')

print(region_mean_price)

#利用循環(huán)提取已經(jīng)處理好的區(qū)域和它的均值

forx,y inzip(region_mean_price.region, region_mean_price.mean_price):

plt.text(x, y, '%.0f'%y, ha= 'center', va= 'bottom',fontsize= 11)

# 顯示柱狀圖值

plt.bar(region_mean_price.region, region_mean_price.mean_price, width= 0.8, color= 'rgby')

plt.show

繼續(xù)繼續(xù),我們來(lái)統(tǒng)計(jì)一下廣州各區(qū)的房?jī)r(jià),然后算出各個(gè)區(qū)域均值,通過(guò)groupby分組統(tǒng)計(jì)出region_mean_price

(豆腐內(nèi)心os:原來(lái)黃埔房?jī)r(jià)都那么高了,各網(wǎng)站數(shù)據(jù)的差異性也會(huì)導(dǎo)致最終展示的結(jié)果不一樣,大家可以選個(gè)大網(wǎng)站試試)

到此,我們這次利用工具抓包小程序網(wǎng)站的介紹就結(jié)束了,大家也可以試試app,原理一樣。

謝謝大家觀看,拜拜咯~

本文涉及爬蟲、可視化代碼下載:

https://alltodata.cowtransfer.com/s/f0b70e0c24164c

責(zé)任編輯:

推薦內(nèi)容