zoukankan      html  css  js  c++  java
  • Python3爬虫实例 代理的使用

        现在爬虫越来越难了,一些网站会有相应的反爬虫措施,例如很多网站会检测某一段时间某个IP的访问次数,如果访问频率太快以至于看起来不像正常访客,它可能就会会禁止这个IP的访问。

      所以我们需要设置一些代理服务器,每隔一段时间换一个代理,就算IP被禁止,依然可以换个IP继续爬取。

        网上有很多网站提供免费代理,但是经过测试基本都不可用,所以就付费买代理IP吧。目前市面有飞蚁代理,代理云,西瓜代理等。下面就介绍一下飞蚁代理使用情况。

        1、首先注册一个用户,注册过程会送50元,可以下单测试。

        2、下单如下:

        

        这个测试期间有个效期,过期失效,据客服讲,正式的期限都比较长,直到用完为止,

      3、生成API链接

      4、测试代码

        获取代理

        

    #获取代理IP
        def getProxyIPs(self,num=1):
            '''
            获取代理IP
            :param num: 获取的代理IP的个数
            :return:
            '''
            proxy_ip=''
            try:
                url = 'http://183.129.244.16:88/open?user_name=sk133_0226153543&timestamp=1551166598&' 
                      'md5=0ADAF27E30AFD0DD52D7B44F3A5C145F&pattern=json&number=%d' % num
                
                response = request.urlopen(url)
                page = response.read()
                txt = str(page.decode('utf-8'))
                dataDict = json.loads(txt)
                print(dataDict)
                ports = dataDict.get('port')
                # domain = dataDict.get('domain')
                for port in ports:
                    proxy_ip = {'http': "http://" + self.proxy_server + ':' + str(port),
                               'https': 'https://' + self.proxy_server + ':' + str(port), }
            except Exception as ex:
                print(ex)
    
            return proxy_ip

      利用获取代理抓取数据

      

        def testproxy(self,url, proxy_IP):
    
            try:
    
                cookie1 = random.choice(self.mycookies)
                UserAgent = random.choice(self.user_agent_list)
                header = {'User-Agent': UserAgent}
                # proxies=proxy_IP ,
    
                txt = requests.get(url,proxies=proxy_IP ,cookies=cookie1, headers=header).text
                print(txt)
              
            except Exception as ex:
                print(ex)

      另外为chrome设置代理IP,Chrome浏览器为例

      

         chrome_options = Options()
            chrome_options.add_argument('--headless')
            chrome_options.add_argument('--disable-gpu')
            proxy = '181.121.214.16:14140'
            chrome_options.add_argument('--proxy-server=' + proxy)
    
            driver = webdriver.Chrome(chrome_options=chrome_options)

    selenium 模块时,以phantomJS浏览器为例:

     driver = webdriver.PhantomJS(service_args = [
                '--proxy=183.129.244.16:11310',
                '--proxy-type=http',
                '--load-images=false'
            ])
  • 相关阅读:
    0806 c#总复习
    0804 递归
    0808 html基础
    0803结构体,枚举类型
    0801out传值
    0731函数
    0730特殊集合
    0728多维数组,ArrayList集合
    js 获取url链接的任意参数
    jq dom操作
  • 原文地址:https://www.cnblogs.com/shaosks/p/10451810.html
Copyright © 2011-2022 走看看