ret=soup.select('#my_p')
ret=soup.select('body p') # 子子孫孫
ret=soup.select('body>p') # 直接子節點(兒子)
ret=soup.select('body>p')[0].text # 直接子節點(兒子)
# xpath: xpath 是一門在 xml 文件中查詢資訊的語言
/ :從根節點擊取。
// :不管位置,直接找
/@屬性名
/text()
doc='''
name: my image 1
name: my image 2
name: my image 3
name: my image 4
name: my image 5
test
name: my image 6
'''from lxml import etree
html=etree.html(doc)
# html=etree.parse('search.html',etree.htmlparser())
# 1 所有節點
a=html.xpath('//*')
# 2 指定節點(結果為列表)
a=html.xpath('//head')
# 3 子節點,子孫節點
a=html.xpath('//div/a')
# 4 父節點
a=html.xpath('//body//a[1]/..')
a=html.xpath('//body//a[1]/parent::*')
# 5 屬性匹配
a=html.xpath('//body//a[@href="image1.html"]')
# 6 文字獲取(重要) /text() 取當前標籤的文字
a=html.xpath('//body//a[@href="image1.html"]/text()')
a=html.xpath('//body//a/text()')
# 7 屬性獲取 @href 取當前標籤的屬性
a=html.xpath('//body//a/@href')
# 8 屬性多值匹配
# a 標籤有多個class類,直接匹配就不可以了,需要用contains
a=html.xpath('//body//a[@class="li"]')
a=html.xpath('//body//a[contains(@class,"li")]')
# 9 多屬性匹配
a=html.xpath('//body//a[contains(@class,"li") or @name="items"]')
a=html.xpath('//body//a[contains(@class,"li") and @name="items"]/text()')
# 10 按序選擇
# # 注意從1 開始取(不是從0)
a=html.xpath('//body//a[1]/@href')
a=html.xpath('//a[2]/text()')
# 取最後乙個
a=html.xpath('//a[last()]/@href')
# 位置小於3的
a=html.xpath('//a[position()<3]/@href')
# 倒數第二個
a=html.xpath('//a[last()-2]/@href')
# 11 節點軸選擇
# ancestor:祖先節點
# 使用了* 獲取所有祖先節點
a=html.xpath('//a/ancestor::*')
# # 獲取祖先節點中的div
a=html.xpath('//a/ancestor::div')
# attribute:屬性值
a=html.xpath('//a[1]/attribute::*')
a=html.xpath('//a[1]/@aa')
# child:直接子節點
a=html.xpath('//a[1]/child::*')
a=html.xpath('//a[1]/child::img/@src')
# descendant:所有子孫節點
a=html.xpath('//a[6]/descendant::*')
a=html.xpath('//a[6]/descendant::h5/text()')
# following:當前節點之後所有節點(兄弟節點和兄弟內部的節點)
a=html.xpath('//a[1]/following::*')
a=html.xpath('//a[1]/following::*[1]/@href')
# following-sibling:當前節點之後同級節點(只找兄弟)
a=html.xpath('//a[1]/following-sibling::*')
a=html.xpath('//a[1]/following-sibling::a')
a=html.xpath('//a[1]/following-sibling::*[2]')
a=html.xpath('//a[1]/following-sibling::*[2]/@href')
//查詢標籤,bs4的find, css,xpath(通用的)
常用xpath選擇器和css選擇器總結
表示式說明 article 選取所有article元素的所有子節點 article 選取根元素article article a 選取所有屬於article的子元素的a元素 div 選取所有div子元素 不論出現在文件任何地方 article div 選取所有屬於article元素的後代的div元素...
爬蟲常用Xpath和CSS3選擇器對比
css是來配合html工作的,和xpath對比起來,css選擇器通常都比較短小,但是功能不夠強大。css中的空白符 和xpath的 都表示當前元素的所有後代 子孫 元素。對於元素 標籤 的操作,xpath和css基本上都能通過各自的語法達到相同的動作,並且爬蟲中使用的都是一些相對簡潔明瞭的操作。結果...
爬蟲之xpath選擇器的使用
xpath 是一門在 xml 文件中查詢資訊的語言。xpath xpath 是一門在 xml 文件中查詢資訊的語言 從根節點擊取。不管位置,直接找 屬性名 text 會複製 pip3 install lxml doc name my image 1 name my image 2 name my i...