Python开发Discord Bot做Webscraping,需登录站点无法自动登录可否用手动浏览器?
完全可以通过手动登录绕过自动化登录流程实现爬取,常见有两种实现方案:
方案1:使用自动化测试工具接管已完成登录的浏览器实例
这个方案适合目标页面为JavaScript动态渲染的场景,也是你这个需求更推荐的选择。
- 先完全关闭本地所有Chrome浏览器进程
- 通过命令行启动带远程调试端口的Chrome,指定独立的用户数据目录避免和你日常使用的浏览器配置冲突:
Windows系统命令:chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\chrome_dev_temp"
MacOS系统命令:/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222 --user-data-dir="~/chrome_dev_temp" - 在弹出的Chrome窗口中手动访问目标站点,完成登录验证流程
- 之后使用Selenium等工具连接本地9222端口的Chrome实例,即可直接访问需要登录权限的目标页面,无需再处理登录逻辑。
这个方案适合目标页面为静态返回、不需要频繁交互的场景,实现成本更低。
- 手动在你日常使用的浏览器中登录目标站点,按下F12打开开发者工具,切换到「网络」标签页后刷新页面,找到对应目标页面的请求记录,复制请求头中的
Cookie完整值,同时可以复制同请求下的User-Agent值备用。 - 在你的Python爬虫中发起请求时,把刚才复制的Cookie和UA填充到请求头中即可,参考代码示例:
import requests target_url = "https://statbot.net/dashboard/757202345950969966/voice" request_headers = { "User-Agent": "你刚才复制的User-Agent内容", "Cookie": "你刚才复制的完整Cookie内容" } response = requests.get(target_url, headers=request_headers) # 对返回的response内容做解析处理即可
注意:Cookie存在有效期,失效后重新手动登录复制新的Cookie替换即可。
注意事项
- 爬取前请确认你的行为符合目标站点的用户协议和robots规则,避免高频请求导致账号被封禁或者IP被限制。
- 如果你的爬虫需要长期运行,更推荐方案1,Cookie失效时仅需要在接管的浏览器中重新完成登录即可,不需要修改爬虫代码配置。
内容的提问来源于stack exchange,提问作者Ironnix
相关产品推荐
相关产品推荐

