将 XPase 与 LXML 配合使用不会返回值



我试图通过使用美丽的汤和lxml的xpath来获得这个网站(https://en.wikipedia.org/wiki/Wikipedia:About)的标题。

这是我使用的代码

from bs4 import BeautifulSoup
from lxml import etree
import requests
xpath_url = "https://en.wikipedia.org/wiki/Wikipedia:About"
xpath_headers = ({'User-Agent':
'Safari/537.36',
'Accept-Language': 'en-US, en;q=0.5'})
xpath_wpage = requests.get (xpath_url, headers = xpath_headers)
xpath_soup = BeautifulSoup (xpath_wpage.content, "html.parser")
dom = etree.HTML (str(xpath_soup))
print (dom.xpath ('//*[@id="firstHeading"]')[0].text)

当我运行这个时,它只打印"None"尽管我希望它能打印出"Wikipedia: about">

我试过复制完整的XPath,而不是使用当前的XPath,它只给我相同的结果。

试试

from lxml import html as lh
dom = xpath_wpage.fromstring(req.text,'lxml')
print(" ".join(doc.xpath('//h1[@id="firstHeading"]//text()'))

输出:

'Wikipedia : About'

最新更新