【问题标题】:Scraping pages that do not seem to have URLs抓取似乎没有 URL 的页面
【发布时间】:2013-09-28 15:25:49
【问题描述】:

我正在尝试抓取这些列表,并在属于我的客户的网站上为这些工作列表提供更多曝光。问题是我需要能够链接到特定的工作列表才能让求职者申请。 This is the page我正在尝试保存列表链接。

如果我可以保存一个地址供求职者点击查看原始列表然后申请,那将是理想的。

  1. 这个网站做了什么没有为这些页面提供 URL
  2. 是否可以提供具体的房源地址
  3. 如果可能,我如何生成该地址?

如果我无法获取特定地址,我想我可以获取它,以便用户单击一个链接,该链接会触发我客户网站上的内部脚本,该脚本获取列表 ID 并搜索我发现该列表的网站,并且然后将用户重定向到该特定列表。

这样做的缺点是用户必须等待一段时间,具体取决于列表在目录上的距离。我可以在进度条上添加令人愉快的“正在搜索您的列表!感谢您的耐心”消息。

如果我可以避免这样做,那就太好了!

我正在使用 Nokogiri 和 Mechanize。

【问题讨论】:

  • 是的,机械化允许提交表单。谢谢!
  • 如果你能把你放在这里的东西写下来作为答案,我会给你功劳。

标签: ruby web-scraping screen-scraping nokogiri mechanize-ruby


【解决方案1】:

您所指的页面似乎是由 Oracle 产品生成的,因此人们会认为他们愿意正确构建 Web 表单(并考虑到可访问性问题)。他们没有,所以我觉得要么他们的工程师过得很糟糕,要么他们故意让它(稍微)更难刮。

当您将鼠标悬停在这些链接上时,您的浏览器没有显示href 的原因是没有一个。页面所做的是使用 JavaScript 来捕获点击事件,使用一些隐藏值填充 POST 表单,并以编程方式调用 submit 方法。这可能会导致屏幕阅读器和其他无障碍设备出现问题,并导致返回按钮必须重新提交页面的方式出现问题。

好消息是,这种结构通常可以通过自己创建表单来抓取,或者使用第三方页面上的真实表单,或者通过爬虫库。如果您将正确的值发布到目标 URI,通过检查页面脚本进行反向工程,则生成的文档应该是您期望的“链接”页面。

【讨论】:

    猜你喜欢
    • 2013-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-24
    • 1970-01-01
    • 2018-02-11
    • 2012-01-12
    • 1970-01-01
    相关资源
    最近更新 更多