如何在 instapy 中配置代理
Posted
技术标签:
【中文标题】如何在 instapy 中配置代理【英文标题】:How to configure proxies in instapy 【发布时间】:2021-05-16 19:11:58 【问题描述】:我有一个使用 instapy 制作的功能齐全的 instagram 机器人,它运行良好, 我想为 instagram 添加一个代理,所以我添加了这段代码
session = InstaPy(username=insta_username,
password=insta_password,proxy_username='',proxy_password='',
proxy_address='8.8.8.8',
proxy_port=8080,
headless_browser=False)
with smart_run(session):
#code here
我使用的是高级代理,所以这肯定不是问题, 我已阅读文档以添加此代码块,但我现在开始遇到此错误
Custom workspace set: "C://Users//Nikhil//Downloads//forthemodernhouses//forthemodernhouses/InstaPy" :]
to be targetted
already dmmed
['livs.cosy.home2019', 'aceservices2021', 'inmovidal', 'gsmwindowsltd', 'braithwaite_gateway', 'fangting_properties']
final to be dmmed
InstaPy Version: 0.6.13
._. ._. ._. ._. ._. ._. ._. ._. ._. ._. ._. ._. ._. ._. ._. ._. ._. ._. ._. ._.
Workspace in use: "C://Users//Nikhil//Downloads//forthemodernhouses//forthemodernhouses/InstaPy"
WARNING [2021-05-23 12:39:53] [forthemodernhouses] Proxy Authentication is not working anymore due to the Selenium bug report: https://github.com/SeleniumHQ/selenium/issues/7239
WARNING [2021-05-23 12:39:55] [forthemodernhouses] Unable to proxy authenticate
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
INFO [2021-05-23 12:39:55] [forthemodernhouses] Session started!
oooooooooooooooooooooooooooooooooooooooooooooooooooooo
代理需要身份验证,所以我添加了代理用户名和密码,但是由于错误说 selenioum 不支持它,所以有没有其他方法可以添加代理(不是手动),那么如何
【问题讨论】:
WARNING
表明您的连接中断,并且由于您提到您的脚本在没有代理的情况下可以正常工作,因此最好仔细检查您的代理连接。另外,您提到您正在使用 premium 代理,也许它也需要身份验证,在这种情况下,您需要传递额外的参数,例如 this
- Internet 连接状态:错误无法登录 Instagram!您将在上面的日志中找到更多信息。首先,提供 log output 用于调试目的...其次,该错误表示您无法登录 instagram,因为互联网较弱或没有互联网。 检查您是否能够在普通浏览器中使用代理登录 instagram。
我买了一个新的代理并编辑了我的问题,你能再看看它吗
设置headless_browser=True
时会发生什么?
1) 有可能被封禁。也许尝试headless_browser=True
只是为了查看连接是否通过并且不执行任何看起来可疑的活动。 2)在上面的帖子中,您设置了 proxy_username='' (blank) OR proxy_username="some_blah" 等? 3) selenium 错误 7239 可能需要您使用其他方法进行身份验证。您可以使用以下两个参数want_check_browser=True
和browser_executable_path=/...firefox.exe OR /.../chrome.exe
在不同的浏览器上使用try。
【参考方案1】:
为避免手动输入代理凭据,您可以尝试以下 2 个选项:
创建一个如上所述的浏览器扩展 here 并在您的 InstaPy 会话之前调用它
在您开始 InstaPy 会话之前,使用带有 selenium 的 url 身份验证:source
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("https://username:password@host:port")
【讨论】:
感谢您的回答,我尝试了您的第二种方法,但我遇到了这个错误 selenium.common.exceptions.webdriverexception: message: 已到达错误页面:关于: 我不想通过扩展来做 我已经发了,之后会话直接结束 代理服务器不支持webdriverexception: message: reached error page: about:
建议通过 https://username:password@host:port
上的 get 请求进行 url 身份验证。您可以通过在浏览器的新选项卡上手动输入来确认吗?
此站点无法提供安全连接 我遇到了同样的问题。
我尝试将browser.py
更改为使用seleniumwire
而不是selenium
,这对我来说效果很好。
【讨论】:
以上是关于如何在 instapy 中配置代理的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Windows 10 上将代理配置到 GitBash 环境中