在爬取某大型網站時有時候可能會出現需要進行手機安全驗證的情況。
當爬蟲項目是部署在 Linux 服務器上,且采用 --headless無頭模式無界面運行時會發現無法進行安全驗證。即使在本地有界面的浏覽器手工通過了手機認證,但在不同 IP 地址的 Linux 服務器上仍需再次驗證。
解決思路解決的方式有很多,這裡根據實際情況我采用了一種相對輕巧的方式:使用 TinyProxy 将 Linux 服務器設置成代理服務器從而進行 HTTP 代理。這樣我們便可在本地浏覽器中設置好代理,再由本地操作有界面浏覽器進行訪問目标網站以及驗證等操作,期間請求會被代理服務器所代理,通過這種方式達到讓 Linux 服務器通過安全驗證的效果。
設置代理服務器
将運行程序的 Linux 服務器設置成代理服務器有多種方式,這裡我采用的是 TinyProxy。Tinyproxy是一個輕量級的HTTP/HTTPS代理守護程序。它從頭到腳設計得既快又小,是一種理想的解決方案,适用于需要完整功能的HTTP代理的嵌入式部署,但大型代理的系統資源不可用。
// 安裝 tinyproxy
yum -y install tinyproxy
// 修改配置 (修改 Port 端口,默認為 8888,修改Allow 為自己的 IP 地址)
vi /etc/tinyproxy/tinyproxy.conf
// 啟動停止等命令如下(這裡還需要注意防火牆等設置)
systemctl start tinyproxy.service
systemctl restart tinyproxy.service
systemctl stop tinyproxy.service
systemctl status tinyproxy.service
systemctl enable tinyproxy.service
// 更多關于 TinyProxy 可查看官網
https://tinyproxy.github.io/
這裡以 chrome 浏覽器為例,配置代理步驟如下:
之後重啟浏覽器進行訪問。
最後以上就是我采用 TinyProxy 代理解決 Linux上 --headless 浏覽器無法進行手機安全認證的解決方案,希望對各位有所幫助,
感謝您的閱讀,如果喜歡本文歡迎關注和轉發,本頭條号将堅持持續分享IT技術知識。對于文章内容有其他想法或意見建議等,歡迎提出共同讨論共同進步。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!