使用xpath進行頁面資料的區域性解析,是最為常用的一種
xpath進行爬蟲資料分析是應用比較廣泛的,學她是很值得的
xpath核心用法在與xpath表示式的自定義性,且不同的xpath表示式可以在同乙個地方宣告何使用
下面就兩種方案進行對比
#!/usr/bin/env python
# encoding: utf-8
"""@file: 全國城市.py
@time: 2020/2/29 13:06
"""import requests
from lxml import etree
headers =
url =
''page_text = requests.get(url=url, headers=headers)
.text
tree = etree.html(page_text)
defcity_1()
: host_li_list = tree.xpath(
'//div[@class="bottom"]/ul/li/a'
) all_city_names =
# 熱門城市名稱
for li in host_li_list:
hot_city_name = li.xpath(
'./text()')[
0]# 全部城市
city_names_list = tree.xpath(
'//div[@class="bottom"]/ul/div[2]/li/a'
)for li in city_names_list:
city_name = li.xpath(
'./text()')[
0]print
(all_city_names,
'\n'
,len
(all_city_names)
)def
city_2()
:# 解析到熱門城市和所有城市
# //div[@class="bottom"]/ul/li/a 熱門城市xpath表示式
# //div[@class="bottom"]/ul/div[2]/li/a 所有城市xpath表示式
a_list = tree.xpath(
'//div[@class="bottom"]/ul/li/a | //div[@class="bottom"]/ul/div[2]/li/a'
) all_city_names =
for a in a_list:
city_name = a.xpath(
'./text()')[
0]print
(all_city_names,
'\n'
,len
(all_city_names)
)if __name__ ==
'__main__'
: city_1(
) city_2(
)
經過上述對比我們不難發現,第二種方案極大地減少了**量,對於有python基礎的童鞋應該知道,就python而言**量的減少,相應的程式的執行效率也自然的有所提高 Xpath路徑表示式
簡單說,xpath就是選擇xml檔案中節點的方法。所謂節點 node 就是xml檔案的最小構成單位,一共分成7種。element 元素節點 attribute 屬性節點 text 文字節點 namespace 命名空間節點 processing instruction 處理命令節點 comment ...
XPath常用表示式
我們將在下面的例子中使用這個 xml 文件。harry potter 29.99 learning xml 39.95 xpath 使用路徑表示式在 xml 文件中選取節點。節點是通過沿著路徑或者 step 來選取的。表示式描述 nodename 選取此節點的所有子節點 從根節點擊取 從匹配選擇的當...
Xpath檔案表示式
簡單說,xpath 就是選擇 xml檔案中節點的方法。所謂節點 node 就是 xml檔案的最小構成單位,一共分成7種。element 元素節點 attribute 屬性節點 text 文字節點 namespace 命名空間節點 processing instruction 處理命令節點 comme...