使用Urllib--用户代理池

Posted u-damowang1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Urllib--用户代理池相关的知识,希望对你有一定的参考价值。

  • 为什么要建立用户代理池?
    • 如果我们用浏览器伪装,仅用一个浏览器标识,如果对方服务器的反爬手段高,我们这一个一直访问很容易被抓到,这时候我们可以建一个用户代理池,随机进行访问,增加我们的成功率
  • 话不多说上代码
    • 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
    • 技术图片

    • 如果每隔两次换一个用户代理
      •  技术图片  

以上是关于使用Urllib--用户代理池的主要内容,如果未能解决你的问题,请参考以下文章

在 Python 3 中为 urllib.request.urlopen 更改用户代理

爬虫基础框架 之urllib --- urllib post请求

python爬虫——urllib使用代理

使用IP代理池和用户代理池爬取糗事百科文章

代理背后的 Python 请求

Day534.Urllib爬虫 -python