【发布时间】:2009-11-09 22:26:26
【问题描述】:
我已经阅读了大量的教程来帮助解决问题,在 Hpricot 下,我发现它的问题是没有刮掉所有的 Html 可以这么说。我会详细说明:
我试图刮掉 html 的网站是 http://yellowpages.com.mt/Malta-Search/Radio-In-Malta-Gozo.aspx。
我需要获取作为结果列出的链接(我需要为上述网站上的任何可能的 url 执行此操作,因此 RSS 或此类无益,因为我需要程序即时读取它们给定我提供的任何网址。)
我已经尝试了所有方法来获取我需要的特定 ID(提供直接 XPATH 等等),但我意识到当我这样做时
doc = Hpricot(open("http://yellowpages.com.mt/Malta-Search/Radio-In-Malta-Gozo.aspx", 'User-Agent'=>'ruby')) str = doc puts str
提供的结果不包括与我需要的链接相关的所有 html!因此,无论我使用哪种方法来抓取,它都找不到所需的元素,因为根据 hpricot,它们不存在。
当我在 Firefox 中查看源代码时,我确实看到了它们,所以我很困惑。有没有人知道如何解决这个问题?多年来我一直在努力寻找自己的方式,但我无法独自找到解决方案! 任何帮助将不胜感激
【问题讨论】:
-
我想要的元素存在于:html/body/form/table//tr/td/div/table[2]//tr[2]/td[2]/div/table/ table//tr/td/div/div/table/tbody/tr/td/h6(其中 // 表示 tbody)但 Hpricot 不会读取 html/body/form/table//tr/td/div/table[2 ]//tr[2]/td[2]/div 有什么想法吗?
标签: html ruby-on-rails screen-scraping hpricot