PHP抓取一个使用cloudflare的网站

PHP抓取一个使用cloudflare的网站,php,curl,web-crawler,cloudflare,Php,Curl,Web Crawler,Cloudflare,我想从一个网站(不是我自己的网站)抓取一些特定的值(例如newstext) file\u get\u contents()不工作,可能被php.ini阻止 所以我试着用旋度来做,问题是: 我只收到cloudflare的重定向文本。 我的爬虫程序应该执行如下操作: 转到页面->等待5秒cloudflare重定向->卷曲页面 在cloudfare等待时间过后,你知道如何抓取页面吗?(用PHP) 编辑:所以我尝试了很多东西,问题仍然是一样的更具体:它仅对cloudflare重定向页面进行爬网。(所以我

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

file\u get\u contents()
不工作,可能被php.ini阻止

所以我试着用旋度来做,问题是:
我只收到cloudflare的重定向文本。
我的爬虫程序应该执行如下操作:
转到页面->等待5秒cloudflare重定向->卷曲页面

在cloudfare等待时间过后,你知道如何抓取页面吗?(用PHP)

编辑:所以我尝试了很多东西,问题仍然是一样的
更具体:它仅对cloudflare重定向页面进行爬网。(所以我得到了一个重定向到主机的页面,cloudflare在前面。当我在localhost上卷曲时,它会占用localhost,所以重定向不起作用。)
5秒“卷曲”后是否无法开始保存returend数据?

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

然后,您需要设置curl脚本来收集“cookiejar”中的所有cookie并自动跟踪重定向

然后你应该做一些测试

希望这有帮助

注:

  • Cloudflare有很好的基础架构来阻止像您这样的人。他们可以做验证码挑战或类似的事情

  • 此外,优秀的系统管理员很快或稍后会发现您正在做什么,并会阻止您的IP或您的用户代理

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

5秒的间隙页面实际上要求在访问者通过检查之前启用JavaScript和cookies,如果您使用爬虫或机器人访问站点,这可能不起作用。

您应该使用

example.js

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

您正在尝试爬网哪个网站?从工作浏览器中查看标题,并在脚本中使用相同的标题。@machineaddict我将尝试CloudFlare的一项服务是机器人检测和阻止。不要期望对CF站点进行卷发可以可靠地工作。@Dagon非常有用!(顺便说一句,我很确定,他们只想保护vs ddos,每天提取一次数据没有什么错。此外,如果我想窃取数据,为什么要使用curl。)
var page = require('webpage').create();
var url = 'http://www.google/';
page.open(url, function (status) {
  console.log(page.content)
  phantom.exit();
});