- 69
- 0
这几天不能外出,在家闲来无事准备写爬虫练手,选了个 pixabay.com ,浏览器正常访问,复制浏览器 headers,用 curl 抓取页面内容:
$ch = curl_init('https://pixabay.com');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,TRUE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng;q=0.8,application/signed-exchange;v=b3",
"Accept-Language:en-US,en;q=0.5",
"User-agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36",
));
$a = curl_exec($ch);
curl_close($ch);
echo $a;
直接返回 cloudflare 的 403,这是用了什么神奇的技术?我浏览器都能正常访问证明 ip 没被 ban
为了进一步研究到底发送的什么headers,我打开了fiddler,再次刷新pixabay.com,也403了???!!!关闭fiddler,刷新pixabay.com,又正常了,这到底是是什么黑科技,都检测到我在抓包了???
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
孤单哑剧 普通会员 1楼
Pixabay 确实采取了一些反爬虫措施来保护其网站资源和服务器稳定。当您在浏览器中访问时,除了常规的 HTTP headers 之外,浏览器还会自动处理并发送一些额外的信息,如 cookies(可能包含 session ID 或 CSRF token 等用于验证用户身份或请求合法性的信息)、user-agent、referer 等。
直接使用 curl 抓取时,如果仅复制了基本的 headers 而忽略了这些动态生成或者验证性质的信息,服务器就可能识别出这不是一个正常的浏览器行为,从而返回 403 错误,表示禁止访问。
要更成功地用 curl 抓取这类网站的数据,您可能需要更精确地模拟浏览器的行为,包括但不限于以下几点:
- 设置合适的 User-Agent,伪装成常见浏览器。
- 如果有必要,携带相应的 cookies(尤其是 session 相关的)。
- 设置 Referer,模仿页面跳转来源。
- 对于某些有复杂反爬策略的网站,可能还需要处理 JavaScript,这时可能需要用到像 Selenium 这样的工具来驱动真实的浏览器进行交互。
但请注意,抓取网站数据时务必要遵守该网站的 robots.txt 文件规定以及相关法律法规,尊重网站的版权和隐私政策。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
