cURL-加载具有CloudFlare保护的网站


cURL - Load a site with CloudFlare protection

我有一个网站,我想用cURL加载它。然而,我所说的网站正在使用cloudflare保护。在cURL请求=>上,它说"检查你的浏览器,你将在5秒内被重定向",我被重定向到不存在的页面,因为我认为我没有通过一些保护测试。

我一直在寻找我的答案很长时间了,我只找到了两个有用的链接:

链路1

链路2

但我还是想不通。有什么能帮我的吗?

这将是CloudFlare的"我处于攻击模式"-->http://blog.cloudflare.com/introducing-im-under-attack-mode

如果你是网站的所有者,你应该将自己的IP地址列入白名单。如果你是网站的访问者,请选择

1.)网站所有者在自己的网站上启用了该功能,在这种情况下,这是故意的,由于他们正在保护自己的网站或,因此无法绕过

2.)您加载站点的频率太高,并且触发了CloudFlare的DDOS保护。

p.s.免责声明:我为CloudFlare工作。

您可以通过在任何主要浏览器的开发工具下的网络部分选择"复制为cUrl"来绕过处于攻击模式。

这将复制所有必需的cookie,以便您的卷曲可以进行"身份验证"。我想这些饼干能吃多久取决于cloudflare。

注意:curl必须在加载站点时使用的同一IP上运行。此外,对于任何真正的测试/开发环境,我建议使用selenium和/或phantomjs,它们是更好的、易于编写脚本的网站测试语言。

curl 'https://ilikeurls.net/ourpage.php?do=command' '
    -H 'Host: ilikeurls.net' '
    -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:33.0) Gecko/20100101 Firefox/33.0' '
    -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' '
    -H 'Accept-Language: en-US,en;q=0.5' '
    -H 'Referer: https://ilikeurls.net/outpage.php' '                                                    
    -H 'Cookie: all required cookies will appear here' '
    -H 'Connection: keep-alive''
    --compressed

尽管您最好使用selenium或phantomjs来编写这些测试的脚本。

您可以尝试调整您的机器人程序设置或找到白名单CURL的方法。

在我调整了防火墙上的Cloudflare设置之后,我的所有curl请求都开始返回403个错误>Bot.所有人都被允许;我把"自动"设置为"阻止",把"可能自动"设置成"挑战",结果打破了CURL。

我不知道如何在php中做到这一点,但https://github.com/lwthiker/curl-impersonate/tree/v0.5.4会有所帮助。也许您可以将共享的二进制lib加载到php或使用命令行工具。