久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

全國地鐵數(shù)據(jù)爬取-python

 昵稱QAb6ICvc 2022-05-10 發(fā)布于浙江省

介紹爬取全國地鐵站點(diǎn),、地鐵線路和發(fā)車時(shí)刻的方法。

一,、兩種爬取方法概述

 (一)html頁面爬取

   1,、 為了收集全國地鐵線路的發(fā)車時(shí)刻信息,剛開始嘗試的方法如下:

    (1)找到每個(gè)城市的地鐵官網(wǎng),,如“廣州地鐵官方網(wǎng)站”

    (2)在官網(wǎng)找到首尾班車時(shí)刻表,,廣州的發(fā)車時(shí)刻數(shù)據(jù)在http://cs./ckfw/fwsj/

    (3)使用python爬取網(wǎng)頁的表格數(shù)據(jù)

  2、實(shí)現(xiàn)細(xì)節(jié)

    主要介紹使用python如何爬取html頁面,。爬蟲用到了webdriver 和BeautifulSoup,,以及l(fā)xml解析。

 (1) 爬取頁面

# 獲取頁面源碼

def get_html(url):

    browser = webdriver.PhantomJS(executable_path=r"E:/spider/phantomjs-2.1.1-windows/bin/phantomjs.exe")     #使用無界面的phantomjs瀏覽器,,封裝瀏覽器信息

    browser.get(url)                 #發(fā)送請(qǐng)求,,加載網(wǎng)頁

    print("### Handling <" + url + ">")

    return browser.page_source  #返回網(wǎng)頁文本

(2) 讀取數(shù)據(jù),用lxml解析

    html = get_html(url)     #獲取html頁面

    bsobj = BeautifulSoup(html, "lxml")       #用lxml解析html

    tbody = bsobj.find("div", {"id":"zoneService"}).find("tbody")    #查找到顯示線路信息的表格

(3) 讀取表格的各個(gè)字段,,存入csv文件

(二)高德地圖API數(shù)據(jù)解析

    1,、html頁面爬取方法的工作量很大,需要單獨(dú)處理每個(gè)城市的數(shù)據(jù),,并且官網(wǎng)提供的數(shù)據(jù)格式不一,,給數(shù)據(jù)收集帶來了很大的困難。使用百度地圖搜索從A到B的路線,,能看到清晰的地鐵換乘方案,、路線經(jīng)過的站點(diǎn)以及首晚班車時(shí)刻。我猜想百度一定搜集好了我需要的這些數(shù)據(jù),,就開始尋找百度是否提供了這樣的API接口,。在百度搜索之后,我找到了這篇文章:全國地鐵線路信息API(含站點(diǎn)早晚班車時(shí)間,坐標(biāo)等),,從中選擇了“高德地圖API”作為接口,。

1. 處理思路如下:

    (1)修改該接口的城市id,1100和城市名字beijing, 得到30個(gè)提供站點(diǎn)名字的服務(wù)接口。

http://map.amap.com/service/subway_1469083453978&srhdata=1100_drw_beijing.json

    (2)修改該接口的城市id,1100和城市名字beijing, 得到提供站點(diǎn)發(fā)車時(shí)刻的服務(wù)接口,。

http://map.amap.com/service/subway?_1469083453980&srhdata=1100_info_beijing.json

    (3)關(guān)聯(lián)站點(diǎn)名字和站點(diǎn)發(fā)車時(shí)刻,,得到完整的線路+站點(diǎn)名+首晚發(fā)車時(shí)刻 的數(shù)據(jù)

 2、實(shí)現(xiàn)細(xì)節(jié)

   介紹如何解析高德API接口的數(shù)據(jù)+如何實(shí)現(xiàn)兩個(gè)表的連接,。

(1)urllib 是一個(gè)工具包,,包含用于處理 Url 的幾個(gè)模塊。urllib.request 用于打開和讀寫url.

    html = urllib.request.urlopen(url)

    hjson = json.loads(html.read().decode("utf-8"))

(2) API返回的json格式說明

根據(jù)返回的json數(shù)據(jù),,把地鐵線名稱,、地鐵線id,、站點(diǎn)名稱、站點(diǎn)id以及其他信息存入stations.csv文件,,把地鐵線id,、站點(diǎn)id、收尾班車時(shí)刻存入time.csv文件,。

(3) 表關(guān)聯(lián),。讀取stations.csv,把stationId作為key,,stationName作為value存入map,,接著讀取time.csv,根據(jù)map.get(key)方法,,得到id對(duì)應(yīng)的名字,。然后把line, stationId, stationName, firstTime, endTime, firstTime2, endTime2字段寫入新的csv文件。最后的結(jié)果如下:

文章知識(shí)點(diǎn)與官方知識(shí)檔案匹配,,可進(jìn)一步學(xué)習(xí)相關(guān)知識(shí)

Python入門技能樹網(wǎng)絡(luò)爬蟲動(dòng)態(tài)渲染頁面爬取38206 人正在系統(tǒng)學(xué)習(xí)中

————————————————

版權(quán)聲明:本文為CSDN博主「jiang_qun」的原創(chuàng)文章,,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明,。

原文鏈接:https://blog.csdn.net/jiang_qun/article/details/79431282

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多