我在抓取代码时遇到问题,我需要为我正在创建的 Web MashUp 提取信息。
基本上,我正在尝试从以下位置抓取代码:
http://yellowpages.com.mt/Meranti-Ltd-In-Malta-Gozo;/Hair-Accessories;Hijjhkikke=Hiojhhfokje.aspx
这只是我需要抓取的页面之一,因此我无法直接向程序提供我需要的代码 =/。
当我使用以下代码(在 Hpricot 中)抓取页面时
puts open(ypUrl, 'User-Agent'=>'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2') { |f| Hpricot(f) }
我注意到,我只看到了脚本参考,而不是我需要的代码部分,即
<script type="text/javascript" src="http://maps.google.com/maps?file=api&v=2&sensor=false&key=ABQIAAAA8JYIIyGmC1BLOU85GKKkPRSNQenRT-s-Gs-9sYb3ZSBhRRTdcRTMq3zWEID1E35uXl9bdQKIPQIjNQ"></script><title>
Beautimport Ltd (Balmain Hair Extensions) 在马耳他 | 黄页??(马耳他)有限公司 | YellowPages.com.mt
这也是我在 Firefox 上查看源代码时看到的。但是,当我将鼠标悬停在 Firebug 中的元素上时,我能够获得一个 XPath,但不幸的是,由于脚本引用仍然如此,它无法正常工作。(我不确定我的解释是否正确)。由于脚本(目前只能在萤火虫中查看),我真的需要页面上生成的所有代码。我需要这个,以便我可以提取以下内容(通过将鼠标悬停在地图上的 Google 图标上从萤火虫中获取:
<a title="Click to see this area on Google Maps" href="http://maps.google.com/maps?ll=35.88805,14.46627&spn=0.006988,0.015922&z=16&key=ABQIAAAA8JYIIyGmC1BLOU85GKKkPRSNQenRT-s-Gs-9sYb3ZSBhRRTdcRTMq3zWEID1E35uXl9bdQKIPQIjNQ&sensor=false&mapclient=jsapi&oi=map_misc&ct=api_logo" target="_blank">
它给出了以下 Xpath(//表示一个 tbody),但正如我所提到的,因为它没有在 Hpricot 中给出整个代码,所以它非常没用,因为它无法获得它!
/html/body/form/table//tr/td/div/table[2]//tr[2]/td[2]/div/div[2]/table//tr/td/div/div[2]/a
通过这种方式,我将能够提取我的项目真正需要的 Lng 和 Lat。我真的不知道如何使用 Hpricot 以另一种方式解决这个问题,因为它没有给我我需要的所有代码。任何帮助将不胜感激。