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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python爬取百度迁徙数据_python爬虫-动态爬取百度迁徙

發布時間:2023/12/10 python 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python爬取百度迁徙数据_python爬虫-动态爬取百度迁徙 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

#1.模擬瀏覽器發送請求

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中提取信息#字符串預處理

html1 = html[28:-1]

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

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

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

value.append(data[i]['value'])#3.數據的本地存儲

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

})

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

一、分析網站

首先我們來分析網站,動態爬取與靜態爬取有些不同,尋找的數據就不在前端上面找了,而是在加載的文件中尋找

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

點擊Preview選項,一個個查找,可以看到這里與前端顯示的數據是一樣的,接下來我們就要爬取這個數據

二、爬取數據

1、模擬瀏覽器發送數據

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')

當我們查看rq.status_code狀態碼時,返回為200,則說明沒有設置反爬機制,不用設置header,若設置了反爬機制,狀態碼為418,就要像上一篇一樣,設置header

此刻查看html,已經爬取下來了

2、提取html中數據

html1 = html[28:-1]

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

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

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

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

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

有一個 方法是直接截取

html1 = html[28:-2]

28是第28位,-2是倒數二位,意思就是只要從48位到-2位之間的內容

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

然后進行解析

data = json.loads(html1)

json.load(filename)

json.loads(string)

一個從文件加載,一個從內存加載

我們想要的是data里面的內容,可以直接

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

讀取字典中第一個列表的字段

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

3、將數據保存在本地

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

})

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

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。