如何在 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=Truebrowser_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 身份验证。您可以通过在浏览器的新选项卡上手动输入来确认吗? 此站点无法提供安全连接 发送了无效响应。尝试运行 Windows 网络诊断程序。 ERR_SSL_PROTOCOL_ERROR,这是我手动得到的【参考方案2】:

我遇到了同样的问题。 我尝试将browser.py 更改为使用seleniumwire 而不是selenium,这对我来说效果很好。

【讨论】:

以上是关于如何在 instapy 中配置代理的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Angular CLI 中配置代理

如何在 Windows 10 上将代理配置到 GitBash 环境中

如何在Linux下配置socks5代理

linux 如何设置代理

如何在 codeanywhere 中配置 React API 代理

如何在 azure devops 构建代理中修复“*pod* 不支持配置文件”