簡體   English   中英

如何通過使用lxml.etree python中的類名來解析html

[英]how to parse html by using class name in lxml.etree python

req = requests.get(url)
tree = etree.HTML(req.text)

現在而不是使用xpath tree.xpath(...)我想知道是否可以像在beautifulSoup soup.find('div',attrs={'class':'myclass'})我正在尋找在LXML類似的東西。

bs4更簡單的方法是使用css選擇器:

soup.select('div.myclass') #  == soup.find_all('div',attrs={'class':'myclass'})

lxml提供cssselect作為模塊(實際上是編譯XPath表達式 )以及作為Element對象的便捷方法。

import lxml.html

tree = lxml.html.fromstring(req.text)
for div in tree.cssselect('div.myclass'):
    #stuff

或者,您可以預編譯該表達式並將其應用於您的Element

from lxml.cssselect import CSSSelector
selector = CSSSelector('div.myclass')

selection = selector(tree)

您說您不想使用xpath,但不解釋原因。 如果目標是使用給定的類搜索標簽,則可以使用xpath輕松實現。

例如,要查找具有“ foo”類的div,可以執行以下操作:

tree.find("//div[@class='foo']")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM