【问题标题】:Scraping hidden HTML (when visible = false) using Hpricot (Ruby on Rails)使用 Hpricot (Ruby on Rails) 抓取隐藏的 HTML(当 visible = false 时)
【发布时间】:2009-11-12 01:23:59
【问题描述】:

不幸的是,我遇到了一个我似乎无法超越的问题,不幸的是,我也只是 Ruby on rails 的新手,因此问题的数量很多

我正在尝试抓取如下网页:

http://www.yellowpages.com.mt/Malta/Grocers-Mini-Markets-Retail-In-Malta-Gozo.aspx

我想抓取下一页的地址、电话和 URL,在这种情况下是

http://www.yellowpages.com.mt/Malta/Grocers-Mini-Markets-Retail-In-Malta-Gozo+Ismol.aspx

我一直在尝试任何我能想到的东西,但似乎没有任何效果,因为它们被设置为不可见左右。

地址在 h3 标记内,但它似乎不可废弃。我也一直在从以下网址http://www.rubyrailways.com/ajax-scraping-with-scrubyt-linkedin-google-analytics-yahoo-suggestions/ 研究 ScRUBYt,但我似乎真的找不到在这种情况下如何应用它们的正面或反面。

我非常感谢任何指点,因为这是我真正需要克服的障碍才能继续完成我的任务。提前感谢您的帮助。

【问题讨论】:

    标签: html ruby-on-rails screen-scraping hpricot scrubyt


    【解决方案1】:

    在您给出的特定示例中,元素不是隐藏的,而是在页面加载后通过 ajax 加载的。所以基本上你需要的是一个 http 客户端,它可以运行 javascript(网络浏览器?)来查看这些地址和其他内容。

    如果您想真正自动化流程并抓取通过 ajax 或 javascript 获得的数据,您可以尝试selenium。尽管它不是为此目的而开发的,但它可以满足您的需求。

    【讨论】:

      【解决方案2】:

      我没有回答你的具体问题,但我想我会指出 Ryan Bates 的 Railscast 剧集在屏幕上用 ruby​​ 抓取:http://railscasts.com/episodes/173-screen-scraping-with-scrapi

      他使用名为 scrAPI 的库而不是 ScRUBYt,因为他无法让 ScRUBYt 工作。 scrAPI 似乎更容易一些?

      我希望这会有所帮助,祝你的作业好运! :)

      -约翰

      【讨论】:

      • 嗨,约翰,非常感谢您的反馈!最重要的问题似乎在于我试图抓取的内容,并且由于它被隐藏左右,我似乎无法获得我需要的数据。我已经查看了 scrAPI,但它看起来可能会在我需要它的地方像 hpricot 一样不足:s 我也发现特别困难,因为 scrAPI 在这个 =/ 中非常新。非常感谢您的帮助,非常感谢!
      【解决方案3】:

      google group 上发布了一个很好的脚本。好像是提取地址之类的,你可以看看脚本page.txt的代码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-03
        • 1970-01-01
        • 1970-01-01
        • 2012-05-12
        相关资源
        最近更新 更多