我正在寻找一种方法从服务器端(使用javascript)抓取网站,并在分析数据后将输出保存到mysql数据库中。我需要从一个页面导航到另一个页面,方法是单击链接并提交数据库中的数据,而不需要会话过期。这可以使用phpquery web浏览器插件吗?我已经开始用casperjs做这个了。我想知道这两种方法的利弊。我是编码领域的初学者。请帮帮忙。
发布于 2013-09-24 13:47:22
我建议您使用PhantomJS或CasperJS,并使用JavaScript选择器解析DOM,以获得所需页面的部分。不要使用phpQuery,因为它是基于PHP的,在处理过程中需要一个单独的步骤,而不是只使用JavaScript DOM解析。另外,您将无法使用PHP执行单击事件。任何客户端都需要在PhantomJS或CasperJS中运行。
如果PHP是您选择的服务器端语言,甚至可以使用PHP编写一个完整的擦拭引擎。您需要反向设计登录过程,并使用cURL请求维护cookie jar,以使登录对每个请求都有效。一旦您与该网站建立了会话,您就可以使用您想要爬行的一系列链接来设置您的导航路径。web爬行背后的想法是,您从某个链接加载一个页面,然后处理该页面,然后移动到下一个链接。继续此过程,直到处理完所有页面,然后完成爬行。
发布于 2013-10-01 02:25:01
我会查看谷歌的指南使AJAX应用程序可爬行,你想要废除的网站可能已经采用了这个计划(使他们的网站内容可以抓取)。
您希望在URL的散列片段中查找#!,这向爬虫表明站点支持AJAX爬行方案。
简单地说,当您遇到这样的URL时。www.example.com/ajax.html#!key=value,您可以将其修改为www.example.com/ajax.html?_escaped_fragment_=key=value。服务器应该使用该页面的HTML快照进行响应。
这是全规格
https://stackoverflow.com/questions/18957679
复制相似问题