python xpath 解析html--<table>下<tb>、<ul>下<li>

用xpath來解析一般標籤都很簡單,因爲大多數到可以找到class或者是id等屬性,確定一類情況。但是<table>下有多個<tb>,<ul>下有多個<li>,而且還沒有屬性,類似這種:




解決辦法:

第一種:用etree.HTML()

res = etree.HTML(response.txt)
table_list = res.xpath('//table[@class="xx"]')#這裏的寫法和response.xpath一般寫法大同小異
#得到table_list這個列表,循環裏再進行操作
for table in table_list:
item["link"]= table.xpath('.//td[@class="xx"]//a[1]//@href')
第二種:

res = etree.HTML(response.txt)

之後xpath可以自己不用寫,在要爬取的網頁中,摁F12,會出現下邊這個:

選擇,之後把光標移到你要解析的地方,比如我要爬取的數據有‘泉州’:


看到右側出現對應的源代碼,之後鼠標右鍵copy->copy xpath,就可以得到/html/body/div[6]/div[1]/ul/li[2]/strong/a,再稍微修改下就可以了。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章