python3_fake_User-Agent_创建UA伪装
UA格式:
User-Agent: Mozilla/<version> (<system-information>) <platform> (<platform-details>) <extensions>
create_UserAgent
随机创建一个UserAgent,避免大量爬取时服务器拒绝
导入
from fake_UserAgent import random_UserAgent
使用方法
伪装成chrome浏览器
response = requests.get(url=url, headers=random_UserAgent())
伪装成Edge浏览器
response = requests.get(url=url, headers=random_UserAgent(edge=True))
返回的内容举例
直接返回一个字典
{'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'}
{'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.60 Safari/537.36 Edg/103.0.1264.49'}
出现错误
如果请求出现错误,请自行修改第64行的 ‘User-Agent’: f’{user_agent}’ 为 ‘user-agent’: f’{user_agent}’ 后,再做尝试
63 header = {
64 'User-Agent': f'{user_agent}'
65 }
可能会持续更新 更新链接: https://github.com/GuoKeLiDeHuanXiang2022/create_UserAgent
程序实现
#!/usr/bin/env python3
# -*- coding:utf-8 -*-
# @Author : GuoKeLiDeHuanXiang2022
# @Edition : python3.10
# @Software : PyCharm
# @Time : 2022/8/4 17:58
# @File : fake_UserAgent.py
"""
随机产生一个User-Agent
UA格式:
User-Agent: Mozilla/<version> (<system-information>) <platform> (<platform-details>) <extensions>
"""
from random import choice
# 系统版本
system_information_list = ['(Windows NT 10.0; Win64; x64)',
'(Windows NT 6.3; Win64; x64)',
'(Windows NT 6.2; Win64; x64)',
'(Windows NT 6.1; Win64; x64)']
# 浏览器内核版本
chrome_list = ['96.0.4664.93',
'96.0.4664.45',
'95.0.4638.69',
'95.0.4638.54',
'94.0.4606.81',
'94.0.4606.71',
'94.0.4606.61',
'94.0.4606.54',
'93.0.4577.82',
'93.0.4577.63',
'91.0.4472.77',
'88.0.4324.11',
'87.0.4280.63',
'87.0.4280.60',
'87.0.4280.47',
'86.0.4240.198',
'86.0.4240.193',
'86.0.4240.183',
'86.0.4240.111',
'86.0.4240.75',
'85.0.4183.121',
'85.0.4183.83',
'84.0.4147.135']
edg_list = ['Edg/91.0.864.41',
'Edg/103.0.1264.49',
'Edg/104.0.1293.47']
def random_UserAgent(edge=False): # 随机产生一个U-A 输出
"""
:param edge: 默认:False True:伪装成edge浏览器 False:伪装成chrome浏览器
:return: header: 请求头字典
"""
system_information = choice(system_information_list)
chrome = choice(chrome_list)
if not edge: # 不需要edge标 默认无edge标
user_agent = 'Mozilla/5.0 ' \
f'{system_information} ' \
'AppleWebKit/537.36 ' \
'(KHTML, like Gecko) ' \
f'Chrome/{chrome} ' \
'Safari/537.36'
else: # 需要edge标
edg = choice(edg_list)
user_agent = 'Mozilla/5.0 ' \
f'{system_information} ' \
'AppleWebKit/537.36 ' \
'(KHTML, like Gecko) ' \
f'Chrome/{chrome} ' \
'Safari/537.36 ' \
f'{edg}'
header = {
'User-Agent': f'{user_agent}'
}
return header
if __name__ == '__main__':
print(random_UserAgent())
print(random_UserAgent(edge=True))