python - 提取文本与正则表达式匹配的 URL - 使用 XPath 1.0

标签 python regex xpath lxml scrapy

我想在 Scrapy 中使用 XPath 提取这种类型的 URL(链接文本是一个任意位数的数字,href 是一个随机文本)。

  • <a href="http://www.example.com/link_to_some_page.html>3</a>
  • <a href="http://www.example.com/another_link-abcd.html>45</a>

我可以想到类似的东西

HtmlXPathSelector(response).select('//a[matches(text(),"\d+")]/@href')

但是,XPath 2.0 似乎不受支持,我无法使用正则表达式。

我能搜索到的最佳单行解决方案来自这个问题:xpath expression for regex-like matching? - 在 scrapy 中有没有更好的方法来实现这一点?

最佳答案

.select('//a[. != "" and translate(., "0123456789", "") = ""]/@href')

关于python - 提取文本与正则表达式匹配的 URL - 使用 XPath 1.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6402980/

相关文章:

java - 如何从 Java 中比较的两个字符串中返回不常见的字符

java - XPath 从某个元素之后的元素获取文本

python导入问题

python - 通过相邻行的差异过滤 pandas 数据框

python - 如何从转换为exe的python脚本运行exe文件

python - 在 PySpark 中使用正则表达式创建 N-Gram

python - 正则表达式 python dataframe 元素

xpath - 使用 XPATH 选择包含特定文本的行*之后*的行

XPath 和 nokogiri;教程/例子?

python - 如何将预先存在的 python 项目导入 Eclipse?