手记

Python爬虫常用小技巧之设置代理IP


设置代理IP的原因

我们在使用Python爬虫爬取一个网站时,通常会频繁访问该网站。假如一个网站它会检测某一段时间某个IP的访问次数,如果访问次数过多,它会禁止你的访问。所以你可以设置一些代理服务器来帮助你做工作,每隔一段时间换一个代理,这样便不会出现因为频繁访问而导致禁止访问的现象。

我们在学习Python爬虫的时候,也经常会遇见所要爬取的网站采取了反爬取技术导致爬取失败。高强度、高效率地爬取网页信息常常会给网站服务器带来巨大压力,所以同一个IP反复爬取同一个网页,就很可能被封,所以下面这篇文章讲述一个爬虫技巧,设置代理IP

代理的获取有很多方式,网上有很多免费的可以去爬取一些试试,但是免费的代理使用起来也是 很吃力的。还有就是现在网上有很多的代理供应商,可以在网上寻找下,然后找家靠谱的使用。毕竟网络太大了,代理供应商肯定也是参差不齐的,所以找到合适的代理还是需要花点时间的。在这里我就是使用了我们长期使用的一家质量好的代理,亿牛云代理,而且是使用的他们的爬虫代理(动态转发)和一般的api模式不一样。这种更简单更方便,对于懒人来说绝对是最佳选择。

具体代码的使用

 #! -*- encoding:utf-8 -*-

 

        import requests

        import random

 

        # 要访问的目标页面

        targetUrl = "http://httpbin.org/ip"

 

        # 要访问的目标HTTPS页面

        # targetUrl = "https://httpbin.org/ip"

 

        # 代理服务器

        proxyHost = "t.16yun.cn"

        proxyPort = "31111"

 

        # 代理隧道验证信息

        proxyUser = "username"

        proxyPass = "password"

 

        proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {

            "host" : proxyHost,

            "port" : proxyPort,

            "user" : proxyUser,

            "pass" : proxyPass,

        }

 

        # 设置 http和https访问都是用HTTP代理

        proxies = {

            "http"  : proxyMeta,

            "https" : proxyMeta,

        }

 

 

        #  设置IP切换头

        tunnel = random.randint(1,10000)

        headers = {"Proxy-Tunnel": str(tunnel)}

        resp = requests.get(targetUrl, proxies=proxies, headers=headers)

 

        print resp.status_code

        print resp.text

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流

 

 


0人推荐
随时随地看视频
慕课网APP