一俯艰、lxml模塊介紹及安裝渤愁,Xpath語言了解
1. lxml模塊是python爬蟲中的一個(gè)解析器慕趴,Xpath是一門在xml文檔中根據(jù)節(jié)點(diǎn)查找信息的語言。
可以參考菜鳥聯(lián)盟學(xué)習(xí)xpath
2. 安裝 pip install lxml
3.網(wǎng)頁知識(shí)了解xpath節(jié)點(diǎn)及常用提取屬性
標(biāo)簽: div ul li a table tr td th p span
節(jié)點(diǎn): 樹形結(jié)構(gòu) 父 子 同胞 先輩 后代
提取數(shù)據(jù)常用的屬性:標(biāo)簽/text()
a標(biāo)簽:文本提取a/text() 超鏈接(也就是跳轉(zhuǎn)的url) 提取a/href
二攻旦、
lxml模塊下的xpath解析提取
將html源碼轉(zhuǎn)換為element html對(duì)象喻旷,變量selector
from lxml import etree
selector=etree.HTML(網(wǎng)頁源碼)
數(shù)據(jù)變量1=selector.xpat('xpath表達(dá)式')
from lxml import etree
file=open('/Users/shixin/Downloads/10-lxml模塊及xpath解析/10-lxml模塊及xpath解析/xpath.html','r',encoding='utf-8')
html = file.read()
#print(html) #獲取的HTML
selector = etree.HTML(html)
#獲取title
title = selector.xpath('//title/text()')[0]
print(title)
h1 = selector.xpath('//h1/text()')[0].strip() #列表索引 然后去除空格
print(h1)
haha= selector.xpath('//div[@class="works"]/text()') #class前加@
print(haha)
結(jié)構(gòu)化提取(for循環(huán)敬特,變量xpath的寫法):
infos=selector.xpath('//a')
print(len(infos))
for info in infos:
a_text=info.xpath('text()')[0]
a_href=info.xpath('@href')[0]
print(a_text,a_href)
練習(xí)
一掰邢、div標(biāo)簽文本提取
將學(xué)習(xí)視頻中xpath.html文件中div標(biāo)簽下文本值
“第一個(gè)div” ,“第二個(gè)div” 使用xpath結(jié)構(gòu)化提取并打印輸出
二伟阔、ul標(biāo)簽文本提取
將xpath.html文件中ul標(biāo)簽下“流程” ,“xpath學(xué)習(xí)”掰伸,“流程2”文本值
使用xpath結(jié)構(gòu)化提取并打印輸出
三皱炉、過濾標(biāo)簽
將xpath.html文件中的第一個(gè)div下的前3個(gè)a標(biāo)簽的文本及超鏈接
使用xpath結(jié)構(gòu)化提取,打印輸出
四狮鸭、requests模塊和lxml&xpath結(jié)合提取數(shù)據(jù)
結(jié)合上節(jié)課requests模塊知識(shí)合搅,將陽光電影網(wǎng)導(dǎo)航欄的文本及超鏈接結(jié)構(gòu)化提取
divs=selector.xpath('//div[@class="works"]/text()')
print(divs)
uls=selector.xpath('//ul/text()')
print(uls)
infos2=selector.xpath('//div[@class="works"][1]/ul[@class="title"][1]/li[position()<4]/a')
for infos2 in infos2:
a_text = infos2.xpath('text()')[0]
a_href=infos2.xpath('@href')[0]
print(a_text,a_href)