1

我正在寻找一种从服务器端(使用javascript)抓取网站并在将数据分析到mysql数据库后保存输出的方法。我需要通过单击链接并从数据库提交数据来逐页导航,而不会过期。这可以使用 phpquery 网络浏览器插件吗?. 我已经开始使用 casperjs 执行此操作。我想知道这两种方法的优缺点。我是编码领域的初学者。请帮忙。

4

2 回答 2

2

我建议您使用PhantomJSCasperJS使用 JavaScript 选择器解析 DOM,以获取您想要返回的页面部分。不要使用 phpQuery,因为它基于 PHP,并且与仅使用 JavaScript DOM 解析相比,在处理过程中需要一个单独的步骤。此外,您将无法使用 PHP 执行点击事件。任何客户端都需要在 PhantomJS 或 CasperJS 中运行。

如果这是您选择的服务器端语言,甚至可以仅使用 PHP 编写一个完整的抓取引擎。您需要对登录过程进行逆向工程,并使用您的 cURL 请求维护一个 cookie jar,以使您的登录对每个请求都有效。一旦您与该网站建立了会话,您就可以使用您想要抓取的一系列链接来设置您的导航路径。网络爬虫背后的想法是,您从某个链接加载页面并处理该页面,然后移动到下一个链接。您继续此过程,直到处理完所有页面,然后您的爬网完成。

于 2013-09-24T13:47:22.630 回答
0

我会查看 Google 的指南使 AJAX 应用程序可抓取您尝试废弃的网站可能已采用该方案(使其网站的内容可抓取)。

您要#!在 URL 的哈希片段中查找,这向爬虫表明该站点支持 AJAX 爬虫方案。

简而言之,当您遇到这样的 URL 时。 www.example.com/ajax.html#!key=value您将其修改为www.example.com/ajax.html?_escaped_fragment_=key=value. 服务器应该响应该页面的 HTML 快照。

这是完整的规格

于 2013-10-01T02:25:01.623 回答