最近遇到一个站的页面无法通过 curl 获取内容

2024-03-21 17:27:51 +08:00
 whereFly

好像是有同源策略限制,不怎么懂。 直接打开目标页面正常显示,通过 curl 获取的却是例外的内容,无解了吗?

2336 次点击
所在节点    PHP
19 条回复
tool2d
2024-03-21 17:32:26 +08:00
同源策略是针对浏览器的,而 curl 是纯客户端,并不存在这个限制,应该是别的什么原因。

把地址贴出来看看呗。
Routeros
2024-03-21 17:33:43 +08:00
盲猜 User-Agent
tubinorg
2024-03-21 17:36:14 +08:00
还有可能是重定向
NessajCN
2024-03-21 17:39:53 +08:00
你看浏览器请求头是啥,复制一份一样的进 curl -H 里再试试
doublespout
2024-03-21 17:41:07 +08:00
有一次性的 token 这种令牌的限制? ajax 接口还是页面?
tool2d
2024-03-21 17:44:09 +08:00
@tubinorg 还有可能是 nonce ,防止重返攻击的。

浏览器访问过一次,参数失效,curl 客户端就不能访问了。除非把浏览器这个请求给拦截下来不发送。
1018ji
2024-03-21 17:48:49 +08:00
你为啥不贴出来,又不犯法
abccccabc
2024-03-21 17:57:22 +08:00
会不会是套了一层 cf 的网站呢?
yuzo555
2024-03-21 17:59:04 +08:00
curl 的默认 User-Agent 是 curl/版本号,特别容易识别并屏蔽。
w4ngzhen
2024-03-21 18:02:46 +08:00
在浏览器上,网络请求中,针对请求,右键 —— 复制 —— “以 cURL 格式复制”,再在 curl 中试下。
j869716
2024-03-21 18:04:41 +08:00
学会使用 `-vvv`
err1y
2024-03-21 18:07:45 +08:00
ua 或者 ja3
fenglangjuxu
2024-03-21 18:11:30 +08:00
现在好多都是渲染出来的 curl 抓取早都过时了
yolee599
2024-03-21 18:13:53 +08:00
Firefox:
浏览器打开 -> 按 F12 -> 选择“网络” -> 刷新 -> 选中一个请求 -> 右键 -> 复制值 -> 复制为 cURL 命令 -> 终端粘贴测试
yanw
2024-03-21 18:19:47 +08:00
1. 针对 agent ip 被 block 了
2. 页面是 js 渲染的
AJ1if4
2024-03-21 18:29:35 +08:00
gamexg
2024-03-21 19:05:11 +08:00
@yolee599 #14 楼主, chrome 也支持这个功能
iminto
2024-03-21 19:51:35 +08:00
这不很正常吗。

UA 不一样,curl 也无法渲染页面。。

还有终极杀器,指纹不一样
ColoThor
2024-03-22 09:14:22 +08:00
需要 js 渲染,没浏览器环境就不行了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://yangjunhui.monster/t/1025818

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX