PHP抓取一个使用cloudflare的网站

时间:2015-07-02 10:29:16

标签: php curl web-crawler cloudflare

我想从网站(不是我自己的网站)抓取一些特定的值(例如,newstext)。

file_get_contents()无效,可被php.ini阻止。

所以我试着卷曲,问题是:
我得到的只是来自cloudflare的重定向文本 我的爬虫应该做的事情如下:
转到页面 - >等待5secs cloudflare重定向 - >卷曲页面。

在云端等待时间之后如何抓取页面的任何想法? (在PHP中)

编辑:所以我尝试了很多东西,问题仍然是一样的..
更具体:它只抓取cloudflare重定向页面。 (所以我得到一个重定向到主机的页面,cloudflare在前面。当我在localhost上卷曲它需要localhost,所以重定向是不行的。) 5secs" curling"?

之后无法开始保存回顾数据

3 个答案:

答案 0 :(得分:1)

“转到页面 - >等待5secs cloudflare重定向 - >卷曲页面。”

5秒插页式页面实际上要求在访问者通过检查之前启用JavaScript和Cookie,如果您使用抓取工具或僵尸程序访问该网站,这可能无效。

答案 1 :(得分:0)

首先,您应该检查浏览器在此网站上的正常行为。什么是重定向和cookie。

然后,你需要设置curl脚本来收集" cookie jar"中的所有cookie。并自动跟踪重定向。

然后你应该做一些测试。

希望这有帮助。

注意:

  • Cloudflare拥有良好的基础设施来阻止像您这样的人。他们可以进行验证码挑战或类似的事情。

  • 同样优秀的系统管理员会很快或以后找到您正在做的事情并阻止您的IP或您的用户代理。

答案 2 :(得分:0)

您应该使用phantomjs

echo shell_exec('phantomjs example.js')

example.js

var page = require('webpage').create();
var url = 'http://www.google/';
page.open(url, function (status) {
  console.log(page.content)
  phantom.exit();
});