当前位置: 首页 > Python编程 > Python编程实战技能 > Python编程基础入门 > python 怎么代理ip

python 怎么代理ip

发布时间:2020年09月27日 09:56:48 来源: 点击量:444

【摘要】使用到的库frombs4importBeautifulSoup importrandom importurllib request下面是对该网站的简单解析提取HTTP的高匿IP使用BeautifulSoup进

使用到的库

from bs4 import BeautifulSoup
import random
import urllib.request

下面是对该网站的简单解析提取HTTP的高匿IP

使用BeautifulSoup进行网页解析

def get_proxy_list():
    target = 'http://www.xicidaili.com/nn/' + str(random.randint(0, 100))
    try:
        opener = urllib.request.build_opener()
        #header可以选自己浏览器的
        #样例:[('User-Agent','Mozilla/5.0 (Windows NT 6.1; Win64; x64) ''AppleWebKit/537.36 
        (KHTML,like Gecko)Chrome/56.0.2924.87 Safari/537.36')]
        opener.addheaders = self.headers
        urllib.request.install_opener(opener)
        html = urllib.request.urlopen(target).read().decode('utf-8')
        tr = BeautifulSoup(html, 'lxml').find_all('tr')
        p = re.compile('<[^>]+>')
        for tag in tr:
            td_list = tag.find_all('td')
            if len(td_list) > 0:
                if str(td_list[5]) == '<td>HTTP</td>':
                #将爬到的代理IP存到列表里面
                    self.proxy_list.append(p.sub('', str(td_list[1])) + ':' + p.sub('', 
                    str(td_list[2])))
    except Exception as b:
        self.logger.exception(b)

相关推荐:《Python入门教程》

接下来就是代理IP的使用

使用的是urllib这个库,到了python3以后这个库可以进行的操作比之前更多,也可以进行一些复杂连接的模拟了。

def init_urllib():
#这个函数用来初始化urllib的参数
length = len(self.proxy_list)
if length == 0:
    get_proxy_list()
#随机得到一个IP
ip = random.choice(self.proxy_list)
self.proxy_list.remove(ip)
proxy = {'http': ip}
proxy_support = urllib.request.ProxyHandler(proxy)
#加载代理
opener = urllib.request.build_opener(proxy_support)
opener.addheaders = self.headers
#初始化urllib
urllib.request.install_opener(opener)
def connect(uri):
html = ''
flag = 20
while flag > 0:
    try:
        html = urllib.request.urlopen(uri).read().decode('utf-8')
        break
    except Exception as b:
    #这里可以将异常细化,由于是简单实现就不做具体实现了
        self.logger.exception(b)
        #实现更换IP重新请求
        flag -= 1
        init_urllib()
return BeautifulSoup(
    html,
    'lxml')

以上就是python对代理IP使用的简单介绍了。

分享到: 编辑:wangmin

就业培训申请领取
您的姓名
您的电话
意向课程
点击领取

环球青藤

官方QQ

扫描上方二维码或点击一键加群,免费领取大礼包,加群暗号:青藤。 一键加群

绑定手机号

应《中华人民共和国网络安全法》加强实名认证机制要求,同时为更加全面的体验产品服务,烦请您绑定手机号.

预约成功

本直播为付费学员的直播课节

请您购买课程后再预约

环球青藤移动课堂APP 直播、听课。职达未来!

安卓版

下载

iPhone版

下载
环球青藤官方微信服务平台

刷题看课 APP下载

免费直播 一键购课

代报名等人工服务

课程咨询 学员服务 公众号

扫描关注微信公众号

APP

扫描下载APP

返回顶部