在python中使用XPath提取包含关键字的href值



我知道这个问题的变体已经被问了很多次,但我没能破解它并得到我想要的。

我有一个网站,里面有几个表。感兴趣的表包含一列,每行都包含链接到不同页面的单词Text。以下是上面链接页面第一行的一个具体示例:

<a href="_alexandria_RIC_VI_099b_K-AP.txt">Text</a>

这是一般模式:

<a href="_something_something-blah-blah.txt">Text</a>

现在我正在做这个:

import requests  
import lxml.html as lh
page = requests.get("http://www.wildwinds.com/coins/ric/constantine/t.html")
doc = lh.fromstring(page.content)
href_elements = doc.xpath('/html/body/center/table/tbody/tr/td/a/@href')
print(href_elements)

所需的响应应该是一个项目数组,如下所示:_something_something-blah-blah.txt我得到的是一个空数组。

由于页面中还有其他我不感兴趣的href元素,我还想修改查询,只获取值中包含.txt的href元素。

非常感谢您能提供的任何帮助!

尝试以下操作:

href_elements = doc.xpath('//center//table//a[contains(@href,".txt")]["Text"]/@href')
for href in href_elements:
print(href)

输出:

_alexandria_RIC_VI_099b_K-AP.txt
_alexandria_RIC_VI_100.txt
_alexandria_RIC_VI_136.txt
_alexandria_RIC_VI_156.txt

等等。

最新更新