这年头写个漫画爬虫都心力憔悴。

2021-08-01 03:46:09 +08:00
 3dwelcome

写了个自用小爬虫,追漫画用,每天刷一次,稳定运行了几个月。

然而,漫画网站是在 cloudflare 上,突然之间就被识别为 BOT,拒绝访问了。可让我非常意外的是,同样的 IP,浏览器访问一点问题都没有!

在 V2 查了前人资料,说是 TLS 指纹技术。顺藤摸瓜,发现了每个客户端都有指纹,难怪相同的 UA/Cookie,curl 不行,浏览器却可以,因为两者的 SSL 指纹是不一样的。( https://browserleaks.com/ssl 里的 JA3 Hash)

于是乎,剩下了二个解决方案:

  1. 修改爬虫客户端,模仿浏览器的行为。但问题是,cloudflare 的 tls 指纹算法并没有公开,网上也搜不到相关信息,应该不可能用 JA3 这种开源解决方案。靠猜测编程,是非常不靠谱的行为,遂放弃。

  2. 把 google chrome 当成代理服务器,运行一个网页,用 websocket 和爬虫通讯,然后用 ajax 去访问目标站点。

用 AJAX 暂时解决了问题,也不知道几个月后,会不会出现新问题。怀念以前 http 不加密一把梭的年代,什么都是明文,简单明了直接。

8398 次点击
所在节点    分享发现
35 条回复
whileFalse
2021-08-01 07:32:33 +08:00
所以网站凭什么白给你爬?
junksheng
2021-08-01 08:21:29 +08:00
你想白女票,自然要做好斗智斗勇的准备
hideokuze
2021-08-01 08:21:54 +08:00
这些事情属于“偷偷的进村,打枪的不要”,就是占网站便宜。要是真闹腾起来了怕不是连这个渠道都给你堵上了。
dingwen07
2021-08-01 09:17:35 +08:00
试试看 headless ?不过多半也不行
3dwelcome
2021-08-01 10:50:14 +08:00
@dingwen07 也许 headless 可以吧,毕竟是同一个浏览器内核。

但我没用过,不知道怎么用 headless 来点图形验证码或者滑动码。

被 cloudflare 打分识别为 BOT 后,一直返回 403,访问就跳 recaptcha 界面,就是不知道怎么互动。
3dwelcome
2021-08-01 10:53:24 +08:00
@whileFalse "所以网站凭什么白给你爬?"

网站又没说什么,个人爬虫每天访问量,不会超过 20 个页面,也就是爬点主流的海贼王,一拳超人之类的更新页面。

主人没说啥,是 cloudflare 这个管家,私下把我给拒之门外。
crab
2021-08-01 10:57:55 +08:00
找出源站 IP 绕过 cloudflare
o00o
2021-08-01 11:12:38 +08:00
@3dwelcome 爬就别想着能一劳永逸,这是一场攻防战,战争白热化之后别说不能爬,连普通用户都会受影响。
参见淘宝(普通用户多刷几次网页都会出验证码)、
闲鱼(砍掉网页版)、
微信(网页版新用户不能使用、强制升级)、
QQ (强制升级、网页版无法使用)
AoEiuV020
2021-08-01 11:13:04 +08:00
哪个网站反爬这么狠?
不如试试爬国内的,那种随处可见的盗版网站基本都是随便请求的,
3dwelcome
2021-08-01 11:14:32 +08:00
@crab “找出源站 IP 绕过 cloudflare”
试了一下你的方法,好像不行。

原理就是扫描互联网上所有 IPV4 段,主动记录和 IP 对应 443 接口的 SSL CERT 证书信息,然后看有没有源站的域名在里面。如果有,加上 HOST 大概率就能访问,绕过 cloudflare cdn 。

工具的话,网上推荐了用 https://censys.io ,来遍历所有的证书和对应的 IPv4,但很可惜,查不出来。
crab
2021-08-01 11:19:48 +08:00
@3dwelcome 哪个漫画站啊?理论上用 chrome 当代理最后也是会遇到因为请求次数多被识别 BOT 。
3dwelcome
2021-08-01 11:29:32 +08:00
@crab “哪个漫画站啊”
https://www.onemanhua.com/ 我是看他更新速度挺快的,基本上全网数一数二。

"理论上用 chrome 当代理最后也是会遇到因为请求次数多被识别 BOT "
应该是这样的,只能尽可能降低请求频率。好在 chrome 就算被识别成 bot, 还能输入验证码,不至于被永远卡死在 403 (手动狗头)
zhengfan2016
2021-08-01 11:42:35 +08:00
python 有专门绕过 cloudflare 的库
icyalala
2021-08-01 12:57:30 +08:00
@3dwelcome
"主人没说啥,是 cloudflare 这个管家,私下把我给拒之门外。"
cloudflare 就是被请来干这类活的啊。。
izzy27
2021-08-01 14:02:56 +08:00
我寻思你这漫画没人爬
kxxoling
2021-08-01 15:21:13 +08:00
cloudflare 软广 🐶
tabris17
2021-08-01 15:30:05 +08:00
爬虫不要放服务器,用自己家电脑爬
Lemeng
2021-08-01 15:30:12 +08:00
白票就是用技术和时间来节省 money,牛就拿
BBCCBB
2021-08-01 16:26:31 +08:00
用 puppeteer 直接运行 chrome 爬..
no1xsyzy
2021-08-01 18:13:13 +08:00
据说可以用 Cloudflare worker 爬,直接白名单(

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

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

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

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

© 2021 V2EX