最近在搞情报监测系统,暗网板块是其中一个重要板块,在这里分享长安不夜城这个暗网网站的爬虫。
遇到的问题及其解决方案:
1、503错误:遇到了请求数据包的检测,导致Request请求不合法。使用Playwright的page.request直接发起 API 请求进行数据爬取,无需requests库,完全复用浏览器环境,避免Cookie和请求头问题。(Playwright是Selenium的上位替代)
2、连接代理问题:由于暗网论坛只能通过 Tor 网络访问,而 Tor 浏览器本身难以自动化,因此我们采用 Playwright 启动普通浏览器,并将网络流量通过 Tor的 SOCKS5 代理转发 的方式,既绕过了Tor浏览器的加固限制,又实现了稳定的暗网访问。
详细流程如下:
(1)playwright直接开启一个新的浏览器,使用proxy(代理)走Tor的Socket5端口(127.0.0.1:9150)。
(2)Tor浏览器通过VPN(V2rayN)走到Tor网络上,最终到达.onion。
3、登录流程复杂,需要进行两次登录验证,后面的请求需要携带前面的token。
详细流程如下:
(1)抓取验证码数据包,获取他的URL和请求头(在代码中需要通过刷新页面来获取验证码)
(2)用户输入验证码后调用 /api/loginChecking 获得 token。跳转到/api/public/welcome。
(3)抓取welcome的url、请求、响应,因为在代码中我们必须完全符合登录流程,如果直接请求登录数据包会失败。
(4)再次刷新页面获取新验证码,用户输入账号、密码、验证码后调用 /api/account/login,数据包中加入 Authorization: Bearer