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

发布于 2024-11-16 04:30:48 字数 436 浏览 3 评论 0原文

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

我可以想到类似的东西

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

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

我可以搜索的最佳单行解决方案来自这个问题: xpath expression for regex-likematching? - 有更好的吗scrapy中的方式来实现这一点?

I would like to extract the URL of this type (link text is a number with any number of digits and href is a random text) using an XPath in Scrapy.

  • <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>

I could think of something like

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

However it appears that XPath 2.0 isn't supported and I can't use regex.

The best single line solution I could search was from this question: xpath expression for regex-like matching? - Is there a better way in scrapy to achieve this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

浮生面具三千个 2024-11-23 04:30:48
.select('//a[. != "" and translate(., "0123456789", "") = ""]/@href')
.select('//a[. != "" and translate(., "0123456789", "") = ""]/@href')
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文