文章目录
一、代理IP
在Python中使用代理IP进行爬虫是一种常见的技术手段,可以在一定程度上解决被网站限制访问的问题。
为什么要使用代理IP
1.让服务器以为不是同一个客户端在请求
2.防止我们的真实IP被泄露被追究
使用场景:
1.被封禁IP之后
2.被反爬之后
代理IP分类:
1.透明代理:毫无作用,服务器可以简单的检测到你使用了代理IP,并且知道你的真实IP
2.匿名代理:检测不到真实的IP
3.高匿代理:两种IP都无法检测到,一般用到IP代理的情况都会选择高匿代理,前两种的实用性太低,不推荐使用,只作为了解。
二、使用步骤
import requests
# 设置代理IP
proxies = {
'http': 'http://127.0.0.1:8888', # HTTP代理IP
'https': 'https://127.0.0.1:8888', # HTTPS代理IP
}
# 使用代理IP发送请求
response = requests.get('http://www.example.com', proxies=proxies)
# 处理响应结果
print(response.text)
在上述代码中,我们通过创建一个proxies字典来设置代理IP,然后将该字典作为参数传递给requests.get()方法的proxies参数。这样就可以通过代理IP发送请求并得到响应结果。
需要注意的是,在实际使用时,需要替换http://127.0.0.1:8888和https://127.0.0.1:8888为真实的代理IP地址和端口号。另外,还需要确保代理IP可用且不被目标网站封禁。
三、小案例
检测代理IP是否可以使用:代理IP的筛选
import requests
import random
if __name__ == '__main__':
ip_list = ['117.92.245.47:40033', '222.90.142.103:40033', '42.87.183.220.40033']
ip = random.choice(ip_list)
print('提取到的代理ip地址', ip)
while True:
try:
url_ = 'https://myip.ipip.net/'
headers_ = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36'
}
proxies_ = {
'https': f'http://{ip}' # 假的代理IP,无法使用,花钱购买的代理的IP也不是100%无法使用
}
response_ = requests.get(url_,headers=headers_, params=proxies_,timeout=2)
# response_ = requests.get(url_,headers=headers_)
print(response_.status_code)
print('目标网站检测到的代理IP:',response_.text)
print('代理ip使用成功!')
break
except:
print('代理IP使用异常,需要重新选择代理IP')
总结
在我们平常的使用中一般很少的情况会用到代理IP,如果要用到的话,只能去一些比较可以信任的网站上进行购买,这里就不过多介绍了。
你可以一无所有,但绝不能一无是处。