爬虫使用代理时判断IP是否使用成功

在近期的爬虫操作中,为了规避因同一IP频繁访问而导致的网站封禁,决定引入IP代理池机制,通过代理动态轮换以降低单一IP的访问频率。然而,面临的一个技术问题是:如何有效验证IP代理切换的成功性?

查找资料发现一个网站:https://ip.smartproxy.com/json 

可以发现打开就会显示当前IP。

使用Requests库:

import requests
import json

response = requests.get("https://ip.smartproxy.com/json")
result = json.loads(response.text)
ip = result["proxy"]["ip"]
print(ip)

使用Selenium库:

from extension import proxies
import selenium
from selenium import webdriver

chrome_options = webdriver.ChromeOptions()
proxies_extension = proxies(proxies_user_name, proxies_password, proxies_endpoint, proxies_port)
chrome_options.add_extension(proxies_extension)
chrome_options.add_argument("--headless=new")

chrome = webdriver.Chrome(options=chrome_options)
chrome.get('https://ip.smartproxy.com/json')
print(chrome.page_source)
chrome.quit()

这里使用了extension(插件),是因为本人使用的代理用到了账号密码,Selenium不支持直接使用,需要通过加入一个extension.py(代码参考:GitHub - Smartproxy/Selenium-proxy-authentication: Example of username and password proxy authentication for use in Selenium)。

如果不需要账号密码,使用如下代码即可设置代理:

chromeOptions.add_argument("--proxy-server=http://xxx.xxx.xxx.xxx:xxxx")

通过返回的网页内容可以清楚看到自己的IP是否有变动,从而判断是否成功使用代理。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值