欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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