Python 基于textContent获取CSS选择器或XPath
据我所知,Python库(如BeautifulSoup或scrapy)可以为提供的CSS选择器或XPath返回文本内容。 我所寻找的恰恰相反——我想提供一个需要删除的文本,并希望获得CSS选择器或XPath来获取该文本 这是可以用现有的库来完成的吗Python 基于textContent获取CSS选择器或XPath,python,web-scraping,beautifulsoup,scrapy,Python,Web Scraping,Beautifulsoup,Scrapy,据我所知,Python库(如BeautifulSoup或scrapy)可以为提供的CSS选择器或XPath返回文本内容。 我所寻找的恰恰相反——我想提供一个需要删除的文本,并希望获得CSS选择器或XPath来获取该文本 这是可以用现有的库来完成的吗 html=”“” 文章标题 第1条段落文本 第2条段落文本 """ # ... 使用get_selector_by_text_content()这里有一些魔力 article_title_selector=通过文本内容(“文章标题”,html)获取_
html=”“”
文章标题
第1条段落文本
第2条段落文本
"""
# ... 使用get_selector_by_text_content()这里有一些魔力
article_title_selector=通过文本内容(“文章标题”,html)获取_selector_#“h1.some class”
article_body_selector=get_selector_by_text_content(“article段落文本1.\n段落文本2.”,html)#“div.article-text>p”
如果可以使用lxml,则可以获取所提供文本的xpath:
import lxml.html
from lxml import etree
targets = ['Article title','Article paragraph text 1.','Article paragraph text 2.']
root = lxml.html.fromstring(html)
tree = etree.ElementTree(root)
for e in root.iter():
for target in targets:
if e.text== target:
print(tree.getpath(e))
输出:
/div/h1
/div/div/p[1]
/div/div/p[2]
它应该是
/*[contains(text(),'text')]
或:contains(“text”)
(使用cssselect)