使用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 更改用户代理