第一天玩爬虫就遇到 418 恼火 -______-------

24 天前
 xoxo419

目标地址: https://search.shopping.naver.com/search/category?adQuery&brand=188869&catId=50000629

分析过程

step1: 国内电信,不用任何代理或 vpn 直接用浏览访问就出现 418 ,初步确定是这个站点封禁国内的。(不知道移动和联通是否也这样)

step2: 启动 vpn 访问用浏览器访问,打开页面正常。

接下来 curl 的奇怪问题 操作系统是: macos-14.5

确定了 curl 终端请求都是会经过代理的

curl 'https://search.shopping.naver.com/search/category?catId=50000630'

尝试 1:在终端:macos-curl 8.6.0 请求返回的是 418

尝试 2: 用 docker-debian-curl 7.52.1 请求返回 200 却是可以成功的

尝试 3: 用 docker-debian-curl 7.88.1 请求返回的是 418

python 和 scrapy 的奇怪问题

确定了请求都是会经过代理的

Python 3.9.6 Scrapy 2.8.0

cookies = {
    'NACT': '1',
    'NAC': 'bupOBQQrA6vz',
    'NNB': 'HTF6RRY7SDCGM',
    'BUC': 'fHVI0Qf4gDQah4m9TkLBxmg7BIZvwdowShJv6ZPLiG8=',
    'OEP_BUCKET_ID': '1',
    'SHP_BUCKET_ID': '9'
}

headers = {
    # 'cookie': 'NACT=1; NAC=bupOBQQrA6vz; NNB=HTF6RRY7SDCGM; BUC=fHVI0Qf4gDQah4m9TkLBxmg7BIZvwdowShJv6ZPLiG8=; OEP_BUCKET_ID=1; SHP_BUCKET_ID=9',
    'sec-ch-ua': '"Not)A;Brand";v="99", "Microsoft Edge";v="127", "Chromium";v="127"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0'
}

url = 'https://search.shopping.naver.com/search/category?catId=50000629'

requests.get(url, headers=headers, cookies=cookies)

尝试 python 请求:返回是 200 正常

尝试 scrapy 请求:返回是 418 失败

3383 次点击
所在节点    程序员
5 条回复
xiaoriri666
24 天前
多半是检测了 tls 指纹,尝试用 tls-client 这个 python 库在请求试试
Puteulanus
24 天前
我这儿是软路由,浏览器可以,复制浏览器请求为 curl 命令导入 paw 可以,但直接执行 curl 命令就是 418 ,感觉应该是检测了 tls 指纹这种的了
jaylee4869
24 天前
xoxo419
24 天前
@xiaoriri666 #1 😃 tls-client 用了这个马上就好了~
X3en
23 天前
学到新知识了

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

https://www.v2ex.com/t/1067576

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

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

© 2021 V2EX