Python爬虫设置代理IP
程序员文章站
2022-06-22 16:39:43
配置代理ipfrom bs4 import BeautifulSoupimport requestsimport random#从ip代理网站获取ip列表def get_ip_list(url,headers): web_data = requests.get(url,headers=headers) soup = BeautifulSoup(web_data.text,'lxml') ips = soup.find_all('tr') ip_list = []...
配置代理ip
from bs4 import BeautifulSoup
import requests
import random
#从ip代理网站获取ip列表
def get_ip_list(url,headers):
web_data = requests.get(url,headers=headers)
soup = BeautifulSoup(web_data.text,'lxml')
ips = soup.find_all('tr')
ip_list = []
for i in range(1,len(ips)):
ip_info = ips[i]
tds = ip_info.find_all('td')
ip_list.append(tds[1].text + ':' +tds[2].text) #拼接成【ip:端口】的格式
return ip_list
#在ip列表中随机取出一个ip
def get_random_ip(ip_list):
proxy_list = []
for ip im ip_list:
proxy_list.append('http://' + ip) #拼接成网址
proxy_ip = random.choice(proxy_list) #随机选择一个网址
poxies = {'http':proxy_ip} #proxies的格式是一个字典:{‘http’: ‘http://123.123.321.123:808‘}
return proxies
if __name__ == '__main__':
proxy_url = 'http://www.xxxxx.com' #ip代理网站
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1'}
ip_list = get_ip_list(proxy_url,headers) #调用函数get_ip_list 传入参数url和headers,返回一个IP列表
proxies = get_random_ip(ip_list) #调用函数get_random_ip 传入参数是第一个函数得到的列表,返回一个随机的proxies
print(proxies)
使用代理ip
运行上面的代码会得到一个随机的proxy_ip,把它直接传入requests的get方法中即可,这样就可以做到每次运行都使用不同的IP访问网站,有效避免了真实IP被封的风险。
import requests
url = 'https://www.baidu.com'
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1'}
#proxies = {'http': 'http://61.140.127.13:80'}
res = requests.get(url,headers=user,proxies=proxies) #使用代理ip进行请求
s = res.status_code
print(s) #状态码200是正常
本文地址:https://blog.csdn.net/weixin_38946164/article/details/107285745
上一篇: JS执行控制之节流模式实例分析
推荐阅读