首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将代理api中的IP got自动更改为selenium

如何将代理api中的IP got自动更改为selenium
EN

Stack Overflow用户
提问于 2022-12-02 21:14:26
回答 2查看 30关注 0票数 0
代码语言:javascript
运行
复制
from selenium import webdriver
from selenium.webdriver.common.proxy import *
from selenium.webdriver.common.by import By
from time import sleep
import requests

response = requests.get("http://proxy.tinsoftsv.com/api/changeProxy.php?key=mykey_apiG&location=0")
print(response.json())

proxy_url = "127.0.0.1:9009"
proxy = Proxy({
    'proxyType': ProxyType.MANUAL,
    'httpProxy': proxy_url,
    'sslProxy': proxy_url,
    'noProxy': ''})

capabilities = webdriver.DesiredCapabilities.CHROME
proxy.add_to_capabilities(capabilities)

driver = webdriver.Chrome(desired_capabilities=capabilities)
driver.get("https://whoer.net/zh")

我有个问题。我已经从一个web服务中租了一个循环代理,我想通过api不断地改变IP。我使用请求模块来获得一个新的IP,那么它如何自动获得新的IP并用旧的IP替换它呢?我是个新手,真的不太懂,希望有人能帮我。非常感谢!

我阅读了服务站点的说明,但是他们没有关于python的教程。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-12-02 21:40:39

若要更改Selenium webdriver使用的IP地址,可以执行以下操作:

代码语言:javascript
运行
复制
from selenium import webdriver
from selenium.webdriver.common.proxy import *
from selenium.webdriver.common.by import By
from time import sleep
import requests

# Get the latest IP address from the proxy service
response = requests.get("http://proxy.tinsoftsv.com/api/changeProxy.php?key=mykey_apiG&location=0")
ip = response.json()["ip"]
port = response.json()["port"]

# Update the proxy URL with the new IP address
proxy_url = f"{ip}:{port}"

# Create a proxy object with the updated proxy URL
proxy = Proxy({
    'proxyType': ProxyType.MANUAL,
    'httpProxy': proxy_url,
    'sslProxy': proxy_url,
    'noProxy': ''})

# Update the capabilities object to use the new proxy
capabilities = webdriver.DesiredCapabilities.CHROME
proxy.add_to_capabilities(capabilities)

# Create a new instance of the webdriver with the updated capabilities
driver = webdriver.Chrome(desired_capabilities=capabilities)
driver.get("https://whoer.net/zh")
票数 0
EN

Stack Overflow用户

发布于 2022-12-02 21:34:00

代码似乎正确地导入了必要的模块,并使用它们创建代理对象和webdriver.Chrome对象。

但是,代码中存在一些问题,可能导致代码无法按预期工作:

proxy_url变量设置为"127.0.0.1:9009",这是本地主机IP地址和端口号。这不是一个有效的代理服务器,它将不允许webdriver.Chrome对象访问internet。您应该用一个有效的代理服务器IP地址和端口号来替换它。

响应变量不在代码中使用。requests.get()方法用于从代理API获得响应,但响应没有以任何方式保存或使用。您应该使用响应获取有效的代理服务器IP地址和端口号,或者从代码中删除requests.get()方法。

code ()方法是导入的,但在代码中没有使用。这不会导致任何错误,但它是不必要的,可以从代码中删除。

以下是修正后的代码:

代码语言:javascript
运行
复制
from selenium import webdriver
from selenium.webdriver.common.proxy import *
from selenium.webdriver.common.by import By
import requests

response = requests.get("http://proxy.tinsoftsv.com/api/changeProxy.php?key=mykey_apiG&location=0")
proxy_url = response.json()["ip"]

proxy = Proxy({
    'proxyType': ProxyType.MANUAL,
    'httpProxy': proxy_url,
    'sslProxy': proxy_url,
    'noProxy': ''})

capabilities = webdriver.DesiredCapabilities.CHROME
proxy.add_to_capabilities(capabilities)

driver = webdriver.Chrome(desired_capabilities=capabilities)
driver.get("https://whoer.net/zh")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74661524

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档