当前位置: 移动技术网 > IT编程>脚本编程>Python > Python爬虫设置代理IP

Python爬虫设置代理IP

2020年07月12日  | 移动技术网IT编程  | 我要评论

配置代理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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网