[英]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.