使用Urllib(3)--用户代理池

  • 为什么要建立用户代理池?
    • 如果我们用浏览器伪装,仅用一个浏览器标识,如果对方服务器的反爬手段高,我们这一个一直访问很容易被抓到,这时候我们可以建一个用户代理池,随机进行访问,增加我们的成功率
  • 话不多说上代码
    • import urllib.request
      import random
      from my_fake_useragent import UserAgent
      ua = UserAgent()
      #用户代理池
      print(type(list((ua.random()))))
      # uapools = list(ua.random())
      # uapools = [
      #     "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36",
      #     "Avant Browser/1.2.789rel1 (http://www.avantbrowser.com)",
      #     "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.0 Safari/532.5",
      # ]
      def UA():
          ua = UserAgent()
          opener = urllib.request.build_opener()
          # thisua = random.choice(uapools)
          thisua = ua.random()
          ua = ("User-Agent",thisua)
          opener.addheaders = [ua]
          urllib.request.install_opener(opener)
          print("当前使用UA"+ str(thisua))
      for i in range(0,10):
          # #如果每2次换一次用户代理
          # if i %2 == 0:
          UA()
          url = "https://www.qiushibaike.com/"
          data = urllib.request.urlopen(url).read().decode("utf-8","ignore")
          print(len(data))

       

    • 这里的用户代理池可以直接放入ua,我不喜欢用这个,python 中给我们提供了一个模块my_fake_useragent可以直接拿到ua
    • 如果每隔两次换一个用户代理
      •    
posted @ 2020-04-18 10:48  手可摘星辰/*  阅读(319)  评论(0编辑  收藏  举报