爬取广州所有停车场数据(Python)
生活随笔
收集整理的這篇文章主要介紹了
爬取广州所有停车场数据(Python)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
目標地址 http://www.gzjt.gov.cn/gzjt/tcc/list_tt.shtml
上面url是廣州交通的地址。朋友想要我?guī)兔θプサ剿械膹V州停車場所在的詳細地址。
一開始去查這個網(wǎng)頁的時候,感覺還是很迷惑的。因為是動態(tài)網(wǎng)頁,所以我得先捕捉漏洞。然后,通過漏洞去抓到對應(yīng)的數(shù)據(jù)有關(guān)的地址。
經(jīng)過大概十幾分鐘,比較幸運,找到了對應(yīng)的漏洞。(個人猜測,可能是因為是政府網(wǎng)站,所以,防護的效果雖然也是有,但是并不那么高深。)
然后,我查了下,總共只有318頁的數(shù)據(jù),也就沒有做多協(xié)程,就直接開了單線程,然后直接一路開過去就好了~
用時大概就30秒?,也還是能接受的~
(有個不太理解,就是不清楚,這個是不是限制了周圍所有的)
代碼運行效果
就是會在代碼所在目錄去找,看看有沒有名為Data的文件夾。沒有就創(chuàng)建一個。
之后,再根據(jù)特定捕捉到的漏洞,進行爬蟲,把對應(yīng)的信息寫入這個文件夾中,然后存儲為json格式的文件。并轉(zhuǎn)成可以看中文的格式的編碼。這樣讓我的Teamates,就算不懂代碼,也可以直接點開這個文件來看數(shù)據(jù)。
代碼如下
import requests import os import jsondef getAllJson(Session, data, headers):url = 'http://219.136.133.163:8000/Pages/Commonpage/AsyGetData.asmx/GetParkList'res = Session.post(url, data=data, headers=headers)res.encoding = 'utf-8'with open('./Data/' + data['cp'] + '.json', 'w') as f:json.dump(res.json(), f, ensure_ascii=False)if __name__ == '__main__':headers = {'X-Requested-With': 'XMLHttpRequest','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'}pageSession = requests.Session()url = 'http://219.136.133.163:8000/Pages/Commonpage/AsyGetData.asmx/GetParkList'pageSession.get(url, headers=headers)data = {'cp': '1','ps': '10','kw': '','lon': 'undefined','lat': 'undefined','type': 'undefined'}if not os.path.exists('./Data'):os.mkdir('./Data')for i in range(318):data['cp'] = str(i + 1)getAllJson(pageSession, data, headers)總結(jié)
以上是生活随笔為你收集整理的爬取广州所有停车场数据(Python)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VS在windows进行网络开发UDP(
- 下一篇: ubuntu改变@后面的主机名