最新公告
  • 欢迎您光临网站无忧模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • python 怎么代理ip

    正文概述    2020-02-29   237

    python 怎么代理ip

    使用到的库

    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使用的简单介绍了。


    下载网 » python 怎么代理ip

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元