當前位置:
首頁 > 最新 > Python爬蟲系列:使用selenium+Edge查詢指定城市天氣情況

Python爬蟲系列:使用selenium+Edge查詢指定城市天氣情況

首先發個福利,有個網店正在推出特價優惠《Python程序設計開發寶典》,原價69.0元,特價46.92元,詳情查看:https://detail.tmall.com/item.htm?id=561815917114&ali_refid=a3_430583_1006:1121676698:N:Python

=======分割線======

話說,國外有個網站http://openweathermap.org/可以免費查詢指定城市的當前天氣情況:

那是不是可以寫個爬蟲程序,自動調用網站的功能來實現天氣查詢呢?畢竟在網頁上已經清清楚楚地顯示了這些數據。按慣例,查看源碼,卻發現啥也木有。

再仔細檢查,發現這個網站是使用JavaScript動態獲取並顯示天氣數據的:

繼續查找和分析,原來數據都是在這裡的。

看起來好像很麻煩的樣子,還是換個思路吧,等有時間再慢慢分析如何提取這樣的數據。回到網站首頁,發現該網站還提供了API介面,可以直接調用並以JSON格式返回指定城市的天氣數據,但是需要首先擁有一個API key才行:

如何獲取這個API key呢,答案是註冊一個賬號:

然而,註冊賬號時會調用google的驗證服務,除非採取特殊手段,否則不會成功,原因不解釋。

兩條路都不太順暢啊,還是再換個思路吧。按道理講,只要是在網頁上顯示出來的數據,理論上都應該是可以提取出來的。如果能夠模擬瀏覽器的渲染過程,得到渲染後的前端代碼,應該就可以了。

那麼怎麼模擬呢?讓我們拿出一個大殺器,selenium,通過這個擴展庫可以驅動幾個主流瀏覽器並調用其功能,這裡我們選擇使用Edge。

首先,查看一下本地計算機Windows操作系統的內部版本號,以我的Win10為例,步驟為:依次單擊開始==>設置==>系統==>關於,找到下圖中的操作系統內部版本號:

然後打開網址https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/,下載合適版本的驅動,並放到Python安裝目錄下:

接下來,來到命令提示符環境,使用pip安裝擴展庫selenium:

最後編寫如下Python代碼,查詢指定城市的天氣情況:

上面代碼中的正則表達式是根據driver.page_cource的內容編寫的,可以自行分析並逐步嘗試,代碼運行結果如下(運行過程會稍微慢一點):

和網頁上的數據對比一下:

內容完全一致。當然,如果使用更整潔的格式查看天氣數據,可以使用正則表達式從程序結果中進行二次提取,不再贅述。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Python 的精彩文章:

Python檢測皮卡丘
學了Python後,我走哪裡都可以連WIFI!為什麼?反正就是這麼強!

TAG:Python |