如何解决帮助进行屏幕抓取/分析
| 我一直在尝试从hostels.com抓取并最终解析一些数据(特别是可用性和价格),例如http://www.hostels.com/hosteldetails.php/HostelNumber.11890。问题是,一旦您选择了晚上数并选择\“立即预订\”,URL字符串就不会传递任何内容(这一切都是通过Ajax完成的,我相信)我无法直接转到特定的日期或时间范围。 我曾尝试使用Selenium,IRobotSoft和FakeApp之类的浏览器模拟器,尽管我确实让Selenium和Fake做了大量工作来捕获完整的源代码,但是当必须抓取(并与其他软件解析)多个页面时,它仍然很丑陋且乏味。一天。 我也尝试过HTML DOM解析器,PHP可脚本化Web浏览器,HTMLUnit,cScrape.php,Crowbar。他们要么无法处理Ajax,要么我没有运气甚至无法运行它们。 理想情况下,我希望可以在服务器上运行某些东西,并且依赖关系应尽可能少,但是在这一点上,我只想使其运行。 现在花了很多时间试图使它工作。我仍然觉得我不确定从哪里开始。有人可以指出我正确的方向吗?我应该回去花更多的时间在HTMLUnit上吗?像这样的网站的最佳做法是什么? 谢谢解决方法
我真的很喜欢Node.js atm(服务器端的javascript,以防您不熟悉),所以这就是我的建议。使用它抓取网站的妙处在于您可以使用jQuery或您最喜欢的JS框架来完成所需信息的所有解析工作!请参阅以下资源以开始使用:
http://blog.dtrejo.com/scraping-made-easy-with-jquery-and-selectorga
https://github.com/tmpvar/jsdom
https://github.com/chriso/node.io/wiki/抓取
https://github.com/joshfire/node-crawler
,您所指向的页面似乎未使用AJAX。相反,您所称的AJAX是POST请求(与url中传递的内容(即GET请求)相反)。我建议您阅读它们之间的区别。尝试了解正在发生的事情,这比依靠某些第三方工具更为重要,后者可能会变得非常不灵活。
安装Firebug,并查看POST请求中发送了哪些变量。
现在,以您喜欢的编程语言执行相同的操作。解析POST请求的响应HTML以获取必要的信息。
另外,+ 1是为了尝试许多不同的解决方案而又不放弃的努力。
,我发现Celerity(http://celerity.rubyforge.org)是一个使用HTMLUnit的JRuby库,是“通过Web进行数据获取”的非常强大的解决方案。
我发现Celerity是Ruby,与完全成熟的Java(HTMLUnit)相比,开发起来要快得多。另外,由于Celerity对HTMLUnit进行了“包装”,我得以在需要做一些较重的工作时使用HTMLUnit。
我在拥有丰富DHTML的网站以及利用Ajax方面取得了成功。虽然我使用了sleep()调用来等待Ajax响应-一切都按预期工作。
试试看!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。