????????在爬虫时经常需要使用代理,于是我爬取了一个可以免费提供代理的网址,从中获取免费代理,从而打造属于一个自己的代理池。
????????如图所示,这是网址的界面展示,我们需要做的就是需要其中的ip、port列中的数据,获取数据后需要我们拼接成一个完整的IP然后保存即可,代码如下:
import requests
from lxml import etree
import os
url = 'https://www.kuaidaili.com/free/inha/3/'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36'
}
content = requests.get(url,headers = headers).text
resonse = etree.HTML(content)
tr_list = resonse.xpath('//div[@id="list"]/table/tbody/tr')
#print(tr_list)
ip_list = []
for tr in tr_list:
ip = tr.xpath('./td[1]/text()')
port = tr.xpath('./td[2]/text()')
proxy_ip = ip[0] +':' + port[0]
#print(proxy_ip)
ip_list.append(proxy_ip)
print(ip_list)
????????代码运行后获取到完整的ip数据,接下来我们就可以使用这些代理了,这里需要使用random来随机选择一个ip。
?
proxy=random.choice(ip_list) #本地代理
proxies={
'http':'http://'+proxy,
'https':'https://'+proxy
}
try:
response=requests.get('网址',proxies=proxies)
print(response.text)
except requests.exceptions.ConnectionError as e:
print('错误:',e.args)
|