回復“資源”即可獲贈Python學(xué)習資料
大家好,我是皮皮。
前幾天在Python鉆石交流群【心田有垢生荒草】問(wèn)了一個(gè)Python網(wǎng)絡(luò )爬蟲(chóng)處理的問(wèn)題,提問(wèn)截圖如下:

代碼截圖如下:
import requests
import json
url = 'https://restapi.amap.com/v3/config/district?parameters'
params = { 'key': '你的key',
'keywords': '中國',
'subdistrict': '3',
}
res = requests.get(url, params)
res.text
jd = json.loads(res.text)
jd
通過(guò)爬蟲(chóng)確實(shí)可以獲取到數據,只不過(guò)里邊的層級關(guān)系還是挺復雜的,有省市區縣鄉等層級,所有看上去沒(méi)有想的那么簡(jiǎn)單。

后來(lái)他自己給了一個(gè)看似復雜的代碼,如下圖所示:

三層嵌套for循環(huán),不過(guò)能搞定就行。
完整代碼如下:
import requestsimport jsonurl = 'https://restapi.amap.com/v3/config/district?parameters'params = { 'key': '你的key','keywords': '中國','subdistrict': '3',}res = requests.get(url, params)res.textjd = json.loads(res.text)jd['districts']#%%df = pd.DataFrame()for sh in range(len(jd['districts'][0]['districts'])):# print(sh)jd1 = jd['districts'][0]['districts'][sh]sheng_id = jd1['adcode']sheng = jd1['name']sheng_lng = jd1['center']print(sheng)for shi_num in range(len(jd1['districts'])):shi = jd1['districts'][shi_num]city_id = shi['adcode']city = shi['name']city_lnt = shi['center']print(city)for qu_num in range(len(shi['districts'])):qu = shi['districts'][qu_num]region_id = qu['adcode']region = qu['name']region_lng = qu['center']print(region)df1 = pd.DataFrame([[sheng_id,sheng,sheng_lng,city_id,city,city_lnt,region_id,region,region_lng]],columns=('province_id','province_name','province_lng_lat','city_id','city_name','city_lnt_lat','region_id','region_name','region_lng_lat'))df = df.append(df1)df
大家好,我是皮皮。這篇文章主要盤(pán)點(diǎn)了一個(gè)Python網(wǎng)絡(luò )爬蟲(chóng)數據處理問(wèn)題,文中針對該問(wèn)題給出了具體的解析和代碼實(shí)現,幫助粉絲順利解決了問(wèn)題。
最后感謝粉絲【心田有垢生荒草】提問(wèn),感謝【dcpeng】、【瑜亮老師】給出的思路和代碼解析,感謝【冫馬讠成】等人參與學(xué)習交流。
有遇到任何問(wèn)題,歡迎加我好友,我拉你進(jìn)Python學(xué)習交流群共同探討學(xué)習。
------------------- End -------------------
聯(lián)系客服