网络爬虫往往会碰到IP被封的尴尬场面,但通过IP代理可以得到解决,但往往免费的IP不稳定,所以使用之前需要验证代理的可用性,现将自己查阅相关资料总结的方法及代码记录以备日后查阅,也供有需要的朋友参阅:
思路如下:
1、在相关免费IP代理的网站获取可用的代理IP以及端口号,存在数据库或者文本,也可不存直接抓取验证使用
2,从抓取的文件或者数据库钟读取IP及端口号和协议
3,使用resqustes.get()设置代理,去尝试访问要抓取的网站,进行验证。
代码如下:
import pandas as pd
import re
import requests
df = pd.read_csv("prox.csv")
t = 0
for i in df.iterrows():
# print(i[1][0])
protocol = "https"
ip = i[1][0]
port = i[1][1]
server = ip + ':' + str(port)
try:
r = requests.get('https://www.ipip.net/', proxies={"https": server}, timeout=2)
except:
print('connect failed' + ip)
else:
# print('success' + server)
t += 1
print('success' + str(re.findall('
(.*?)
', str(r.text))))
print(str(t))