1、先通过库获取到所有的UA
2、自己将获取到的UA保存下来
3、封装成自己的工具库,供以后使用
一、使用fake_useragent库将所有的UA下载下来
关于fake_useragent库的使用,请移步:Python-fake_useragent库的简单使用
1. 安装fake_useragent库
'''
1. 安装
pip install fake_useragent
2. 导包
from fake_useragent import UserAgent
'''
2. 下载数据
import json
from fake_useragent import UserAgent
# 声明集合,保存UA
User_Agent_Set = set()
# 因为 fake_useragent库 获取UA的方式是随机的
# 所以,我们扩大获取UA的次数,尽可能的获取到所有的UA,然后将其添加到集合中自动去重
for i in range(100000):
# 随机获取UA
ua= UserAgent().random
# 将获取到的UA添加到集合中
User_Agent_Set.add(ua)
# 将集合转换为列表
User_Agent_List = list(User_Agent_Set)
# 查看获取到的UA数:经过多次测试,最多能获取到的UA数为250
print(len(User_Agent_List))
# 将UA保存到文件中
with open('ua.json', 'w') as f:
json.dump(User_Agent_List, f)
二、将下载好的数据封装成自己的工具库
- 新建一个python文件
- 将下载好的json数据复制到自己新建的python文件中
- 封装方法,以便随机获取UA
- 下面的代码仅列出部分UA,文章末尾会列出我获取到的全部UA
from random import choice
'''
随机获取UA
'''
def getRandomUA():
User_Agent_List = [
"Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:22.0) Gecko/20130328 Firefox/22.0",
"Opera/9.80 (Windows NT 6.1; U; fi) Presto/2.7.62 Version/11.00",
"Mozilla/5.0 (X11; CrOS i686 3912.101.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36",
"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; Media Center PC 6.0; InfoPath.2; MS-RTC LM 8)",
"Mozilla/5.0 (Windows; U; Windows NT 6.1; fr-FR) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.13+ (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2",
]
return choice(User_Agent_List)
三、使用自己封装的工具库
import urllib.request
import KSTools # 这是我的工具库
url = 'https://www.bilibili.com'
headers = {
'User-Agent': KSTools.getRandomUA() # 这里就调用了自己的工具库的方法来随机获取UA
}
request = urllib.request.Request(url=url, headers=headers)
response = urllib.request.urlopen(request)
con = response.read().decode('utf-8')
print(con)
四、附录:全部UA
'''
随机获取UA的方法,可以直接复制到代码中调用
'''
def getRandomUA():
User_Agent_List = [
"Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:22.0) Gecko/20130328 Firefox/22.0",
"Opera/9.80 (Windows NT 6.1; U; fi) Presto/2.7.62 Version/11.00",
"Mozilla/5.0 (X11; CrOS i686 3912.101.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36",
"Opera/9.80 (Windows NT 5.1; U; cs) Presto/2.7.62 Version/11.01",
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; ko-kr) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27",
"Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.2117.157 Safari/537.36",
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; it-it) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27",
"Mozilla/5.0 (Windows; U; Windows NT 6.0; hu-HU) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.3 Safari/533.19.4",
"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; Media Center PC 6.0; InfoPath.2; MS-RTC LM 8)",
"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0",
"Mozilla/5.0 (Windows NT 5.1; rv:31.0) Gecko/20100101 Firefox/31.0",
"Mozilla/5.0 (Windows NT 5.1; rv:21.0) Gecko/20130331 Firefox/21.0",
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7; da-dk) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1",
"Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2049.0 Safari/537.36",
"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20130401 Firefox/21.0",
"Opera/9.80 (Windows NT 5.1; U; en) Presto/2.9.168 Version/11.51",
"Mozilla/4.0 (Compatible; MSIE 8.0; Windows NT 5.2; Trident/6.0)",
"Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 7.0; InfoPath.3; .NET CLR 3.1.40767; Trident/6.0; en-IN)",