xpath
即為xml
路徑語言(xml path language)
,它是一種用來確定xml
文件中某部分位置的語言。
說白了就是找出xml
文件中我們想要的內容,這裡我們使用天氣2345**上的資料來舉例,其**主頁面的原始碼如下:
這裡我們想要提取從今天開始的一周內的天氣情況,其中包括日期、天氣情況、溫度範圍、風力大小、空氣質素。這些資料都在我擷取的圖中可以找到,如今天2.28
的資料:
我們發現每一天的資料都儲存在這個li
標籤下面,而所有li標籤又在標籤下,所以我們要先定位到這個標籤下。
1. 爬取網頁資料
這裡的網頁資料是靜態的,所以爬取很簡單:
import requests
url=""
headers=
response=requests.get(url,headers=headers)
2. 生成html
物件使用xpath
(1)獲取html
物件
from lxml import etree
html=etree.html(response.text)
(2)定位到class
屬性為"seven-day"
的div
節點:
divs=html.xpath('//div[@class="seven-day"]')[0]
這裡解釋一下:輸出結果://
:查詢所有li標籤(不受限全域性查詢)
[@class="seven-day"]
:如果要查詢屬性,必須在屬性名前使用@
來裝飾,這裡加上中括號表示查詢class
屬性為"seven-day"
的div
節點3.後面
[0]
是因為生成出來的是列表,要取html
物件
(3)找出div
節點下的a
標籤,因為資料明細都集中在這個a
標籤下
lis=divs.xpath('./ul/li/a')
這裡解釋一下:3. 利用.
:表示從當前節點開始(.
相當於//div[@class="seven-day"]
)
xpath
篩選出我們想要的資料`(1)日期
li.xpath('./em/text()')
(2)天氣情況
li.xpath('./i/text()')
(3)溫度變化
li.xpath('./span[@class="tem-show"]/text()')
(4)風力
li.xpath('./span[@class="wind-name"]/text()')
(5)空氣質素
li.xpath('./span[@class="wea-qulity"]/text()')
這裡解釋一下:text()
:輸出節點下的所有內容
4. 放入**`
北漂一周天(面試經歷)
開開心心來到北京,接觸到了很多的新鮮事物,把行李安置在朋友家就去看之前看的房子。因為兩個人和住意見不和,最後住在了北京一家青年旅社,50一晚,一晚都沒睡好。青年旅社環境很差,一想自己早上五點起床到晚上,簡簡單單只吃了一盤蛋炒飯,沒有休息,很難受。其實從 想想也想出來了,和同行的兄弟在天台聊到深夜,總...
python周天為一周的開始 每週覆盤(四)
其實就是周記啦,但我想讓名字聽起來洋氣點 2020.11.9 2020.11.15,寫於2020.11.18,我保證以後週日或周一 一定按時更 本週問題 一.惡性迴圈 周一至周五學習效率低,又是沒幹什麼實事的一周。又是自習課上的莫名其表的一周,沒規劃,不停玩手機。這週又有雙十一,又買了幾樣大件,結果...
使用Python去爬取中國天氣網的近7天天氣情況
import requests from bs4 import beautifulsoup address for i in range 1,24 z if i 5 z 0 str i 0100 if i 4 and i 10 z 0 str i 0101 if i 9 z str i 0101 a...