【问题标题】:Finding links on page matching HREF pattern在匹配 HREF 模式的页面上查找链接
【发布时间】:2011-11-08 02:58:18
【问题描述】:

我正在尝试与一个充满图像的网站进行交互,并希望通过单击每张图像与其进行交互。每个图像都有一个相对 URL(例如:/image/1000/、image/1023/ 等)。我假设的数字是 image_id 并且似乎是随机的,而不是连续的。

这是我在 Rails 控制台中所做的:

agent = Mechanize.new
agent.get('http://www.website.com')
agent.page.links_with(:href => '/image')

最后一行没有返回任何东西,但是当我尝试时

agent.page.link_with(:href => '/image/1000/')

它按预期返回链接。

我很确定问题出在 :href 参数中,它不应该是 '/image'。但我尝试了其他组合,如 '/image/' 、 '/image/* ' 等,但它仍然没有返回任何内容。

感谢任何建议。

【问题讨论】:

    标签: ruby-on-rails screen-scraping nokogiri mechanize


    【解决方案1】:

    注意:未经测试

    试试:agent.page.links_with(:href => /\/image\/(\d{1,})/)。 links_with 文档显示了一个正在使用的正则表达式,所以我认为这可以正常工作。此外,$1 将返回您的 image_id

    http://mechanize.rubyforge.org/Mechanize/Page.html#method-i-links_with-28criteria-29

    【讨论】:

    • 请注意 \d{1,}\d+ 相同(但更丑);)此外,我可能建议使用 %r 正则表达式文字,这样您就不必转义斜杠: :href => %r{^/image/(\d+)}
    猜你喜欢
    • 1970-01-01
    • 2014-08-13
    • 1970-01-01
    • 2014-12-24
    • 2019-01-14
    • 1970-01-01
    • 2015-09-13
    • 2022-01-14
    • 1970-01-01
    相关资源
    最近更新 更多