日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python爬取百度迁徙动态图_python爬虫动态爬取百度迁徙

發(fā)布時(shí)間:2023/12/10 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python爬取百度迁徙动态图_python爬虫动态爬取百度迁徙 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

#1.模擬瀏覽器發(fā)送請(qǐng)求

importrequestsimportjsonimportpandas as pd

city_name=[]

province_name=[]

value=[]

url= 'https://huiyan.baidu.com/migration/cityrank.jsonp?dt=country&id=0&type=move_in&date=20200315&callback=jsonp_1590404076900_7186798'rq=requests.get(url)

rq.status_code

html= rq.content.decode('utf-8')#2.從html中提取信息#字符串預(yù)處理

html1 = html[28:-1]

data= json.loads(html1)['data']['list']for i inrange(len(data)):

city_name.append(data[i]['city_name']) #賦值給一個(gè)列表

province_name.append(data[i]['province_name'])

value.append(data[i]['value'])#3.數(shù)據(jù)的本地存儲(chǔ)

move_in_data =pd.DataFrame({'遷入城市':city_name,'遷入省份':province_name,'比例':value

})

move_in_data.to_excel('./move_in_data.xlsx')

一、分析網(wǎng)站

首先我們來分析網(wǎng)站,動(dòng)態(tài)爬取與靜態(tài)爬取有些不同,尋找的數(shù)據(jù)就不在前端上面找了,而是在加載的文件中尋找

打開網(wǎng)頁F12,一般我們先看js文件,如果沒有,看看XHR等其他文件。按size排序,從大到小,查找數(shù)據(jù)

點(diǎn)擊Preview選項(xiàng),一個(gè)個(gè)查找,可以看到這里與前端顯示的數(shù)據(jù)是一樣的,接下來我們就要爬取這個(gè)數(shù)據(jù)

二、爬取數(shù)據(jù)

1、模擬瀏覽器發(fā)送數(shù)據(jù)

importrequests

url= 'https://huiyan.baidu.com/migration/cityrank.jsonp?dt=country&id=0&type=move_in&date=20200315&callback=jsonp_1590404076900_7186798'rq=requests.get(url)

rq.status_code

html= rq.content.decode('utf-8')

當(dāng)我們查看rq.status_code狀態(tài)碼時(shí),返回為200,則說明沒有設(shè)置反爬機(jī)制,不用設(shè)置header,若設(shè)置了反爬機(jī)制,狀態(tài)碼為418,就要像上一篇一樣,設(shè)置header

此刻查看html,已經(jīng)爬取下來了

2、提取html中數(shù)據(jù)

html1 = html[28:-1]

data= json.loads(html1)['data']['list']for i inrange(len(data)):

city_name.append(data[i]['city_name']) #賦值給一個(gè)列表,.append表示追加

province_name.append(data[i]['province_name'])

value.append(data[i]['value'])

我們想要的是data里面的數(shù)據(jù),那么首先就要截取字典,{}里面的東西

有一個(gè) 方法是直接截取

html1 = html[28:-2]

28是第28位,-2是倒數(shù)二位,意思就是只要從48位到-2位之間的內(nèi)容

輸出html1為(注意{}的首位閉合)

然后進(jìn)行解析

data = json.loads(html1)

json.load(filename)

json.loads(string)

一個(gè)從文件加載,一個(gè)從內(nèi)存加載

我們想要的是data里面的內(nèi)容,可以直接

data = json.loads(html1)['data']

讀取字典中第一個(gè)列表的字段

data['list'][0]['city_name']

3、將數(shù)據(jù)保存在本地

move_in_data =pd.DataFrame({'遷入城市':city_name,'遷入省份':province_name,'比例':value

})

move_in_data.to_excel('./move_in_data.xlsx')

總結(jié)

以上是生活随笔為你收集整理的python爬取百度迁徙动态图_python爬虫动态爬取百度迁徙的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。