分享个自己Python爬虫时的浏览器标识库

本人使用的Python3版本,python2未做测试
如有问题很可能出在 toObj函数上
toObj函数具体参考:
https://stackoverflow.com/questions/1305532/convert-Python-dict-to-object

UserAgent.py

class toObj(object):
    def __init__(self, d):
        for a, b in d.items():
            if isinstance(b, (list, tuple)):
                setattr(self, a, [toObj(x) if isinstance(
                    x, dict) else x for x in b])
            else:
                setattr(self, a, toObj(b) if isinstance(b, dict) else b)
                
'''
Android 设备
''' 
Android = toObj({
    "Xiaomi": {
        "Id": "Xiaomi",
        "Name": "小米手机",
        "UserAgent": "Mozilla/5.0 (Linux; U; Android 4.1.1; zh-cn;  MI2 Build/JRO03L) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 XiaoMi/MiuiBrowser/1.0"
    },
    "Meizu": {
        "Id": "Meizu",
        "Name": "魅族手机",
        "UserAgent": "JUC (Linux; U; 2.3.5; zh-cn; MEIZU MX; 640*960) UCWEB8.5.1.179/145/33232"
    },
    "Nexus7": {
        "Id": "Nexus7",
        "Name": "Nexus 7 (Tablet)",
        "UserAgent": "Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166  Safari/535.19"
    },
    "AndroidGalaxyS3": {
        "Id": "AndroidGalaxyS3",
        "Name": "Samsung Galaxy S3 (Handset)",
        "UserAgent": "Mozilla/5.0 (Linux; U; Android 4.0.4; en-gb; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30"
    },
    "AndroidGalaxyTab": {
        "Id": "AndroidGalaxyTab",
        "Name": "Samsung Galaxy Tab (Tablet)",
        "UserAgent": "Mozilla/5.0 (Linux; U; Android 2.2; en-gb; GT-P1000 Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"
    }
})
'''
国产浏览器
'''
China = toObj({
    "360se": {
        "Id": "360se",
        "Name": "360安全浏览器",
        "UserAgent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; 360SE)"
    },
    "360chrome": {
        "Id": "360chrome",
        "Name": "360极速浏览器",
        "UserAgent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; 360Chrome)"
    },
    "liebao": {
        "Id": "liebao",
        "Name": "猎豹浏览器",
        "UserAgent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36 LBBROWSER"
    },
    "ucpc": {
        "Id": "ucpc",
        "Name": "UC浏览器电脑版",
        "UserAgent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 UBrowser/5.1.2238.18 Safari/537.36"
    },
    "uc": {
        "Id": "uc",
        "Name": "UC浏览器手机版",
        "UserAgent": "UCWEB/2.0 (iOS; U; iPh OS 4_3_2; zh-CN; iPh4) U2/1.0.0 UCBrowser/8.6.0.199 U2/1.0.0 Mobile"
    }, "sougou": {
        "Id": "sougou",
        "Name": "搜狗浏览器",
        "UserAgent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36 SE 2.X MetaSr 1.0"
    }, "baidu": {
        "Id": "baidu",
        "Name": "百度浏览器",
        "UserAgent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 BIDUBrowser/7.5 Safari/537.36"
    }, "maxthon": {
        "Id": "maxthon",
        "Name": "遨游浏览器",
        "UserAgent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Maxthon 2.0)"
    }, "qq": {
        "Id": "qq",
        "Name": "QQ浏览器",
        "UserAgent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.124 Safari/537.36 QQBrowser/9.0.2229.400"
    }, "mqq": {
        "Id": "mqq",
        "Name": "QQ浏览器手机版",
        "UserAgent": "MQQBrowser/3.6/Adr (Linux; U; 4.0.3; zh-cn; HUAWEI U8818 Build/U8818V100R001C17B926;480*800)"
    }, "wechat": {
        "Id": "wechat",
        "Name": "微信内置浏览器",
        "UserAgent": "Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10B329 MicroMessenger/5.0.1"
    }
})

'''
搜索引擎浏览器
'''
Spider = toObj({
    "Baidu": {
        "Id": "Baidu",
        "Name": "百度PC",
        "UserAgent": "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)"
    },
    "Baidum": {
        "Id": "Baidum",
        "Name": "百度移动端",
        "UserAgent": "Mozilla/5.0 (Linux;u;Android 4.2.2;zh-cn;) AppleWebKit/534.46 (KHTML,like Gecko) Version/5.1 Mobile Safari/10600.6.3 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)"
    },
    "BingBot": {
        "Id": "BingBot",
        "Name": "BingBot (Bing's spider)",
        "UserAgent": "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)"
    },
    "Googlebot": {
        "Id": "Googlebot",
        "Name": "Googlebot (Google's spider)",
        "UserAgent": "Googlebot/2.1 (+http://www.googlebot.com/bot.html)"
    },
    "Slurp": {
        "Id": "Slurp",
        "Name": "Slurp! (Yahoo's spider)",
        "UserAgent": "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)"
    }
})

'''
Mac OS
'''
Safari = toObj({
    "SafariMac": {
        "Id": "SafariMac",
        "Name": "Safari on Mac",
        "UserAgent": "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; en-US) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27"
    },
    "SafariWin": {
        "Id": "SafariWin",
        "Name": "Safari on Windows",
        "UserAgent": "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27"
    },
    "SafariiPad": {
        "Id": "SafariiPad",
        "Name": "Safari on iPad",
        "UserAgent": "Mozilla/5.0 (iPad; CPU OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3"
    },
    "SafariiPhone": {
        "Id": "SafariiPhone",
        "Name": "Safari on iPhone",
        "UserAgent": "Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3"
    }
})

'''
Opera 欧朋
'''
Opera = toObj({
    "OperaMac": {
        "Id": "OperaMac",
        "Name": "Opera on Mac",
        "UserAgent": "Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; en) Presto/2.9.168 Version/11.52"
    },
    "OperaWin": {
        "Id": "OperaWin",
        "Name": "Opera on Windows",
        "UserAgent": "Opera/9.80 (Windows NT 6.1; WOW64; U; en) Presto/2.10.229 Version/11.62"
    }
})
'''
Chrome
'''
Chrome = toObj({
    "ChromeAndroidMobile": {
        "Id": "ChromeAndroidMobile",
        "Name": "Chrome on Android Mobile",
        "UserAgent": "Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19"
    },
    "ChromeAndroidTablet": {
        "Id": "ChromeAndroidTablet",
        "Name": "Chrome on Android Tablet",
        "UserAgent": "Mozilla/5.0 (Linux; Android 4.1.2; Nexus 7 Build/JZ054K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19"
    },
    "ChromeMac": {
        "Id": "ChromeMac",
        "Name": "Chrome on Mac",
        "UserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36"
    },
    "ChromeUbuntu": {
        "Id": "ChromeUbuntu",
        "Name": "Chrome on Ubuntu",
        "UserAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/27.0.1453.93 Chrome/27.0.1453.93 Safari/537.36"
    },
    "ChromeWin": {
        "Id": "ChromeWin",
        "Name": "Chrome on Windows",
        "UserAgent": "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36"
    },
    "ChromeiPhone": {
        "Id": "ChromeiPhone",
        "Name": "Chrome on iPhone",
        "UserAgent": "Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_4 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) CriOS/27.0.1453.10 Mobile/10B350 Safari/8536.25"
    }
})

'''
IE
'''
IE = toObj({
    "IE10": {
        "Id": "IE10",
        "Name": "Internet Explorer 10",
        "UserAgent": "Mozilla/5.0 (compatible; WOW64; MSIE 10.0; Windows NT 6.2)"
    },
    "IE6": {
        "Id": "IE6",
        "Name": "Internet Explorer 6",
        "UserAgent": "Mozilla/4.0 (Windows; MSIE 6.0; Windows NT 5.2)"
    },
    "IE7": {
        "Id": "IE7",
        "Name": "Internet Explorer 7",
        "UserAgent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)"
    },
    "IE8": {
        "Id": "IE8",
        "Name": "Internet Explorer 8",
        "UserAgent": "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)"
    },
    "IE9": {
        "Id": "IE9",
        "Name": "Internet Explorer 9",
        "UserAgent": "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)"
    }
})

'''
Firefox
'''
Firefox = toObj({
    "FFAndroidHandset": {
        "Id": "FFAndroidHandset",
        "Name": "Firefox on Android Mobile",
        "UserAgent": "Mozilla/5.0 (Android; Mobile; rv:14.0) Gecko/14.0 Firefox/14.0"
    },
    "FFAndroidTablet": {
        "Id": "FFAndroidTablet",
        "Name": "Firefox on Android Tablet",
        "UserAgent": "Mozilla/5.0 (Android; Tablet; rv:14.0) Gecko/14.0 Firefox/14.0"
    },
    "FFMac": {
        "Id": "FFMac",
        "Name": "Firefox on Mac",
        "UserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:21.0) Gecko/20100101 Firefox/21.0"
    },
    "FFUbuntu": {
        "Id": "FFUbuntu",
        "Name": "Firefox on Ubuntu",
        "UserAgent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:21.0) Gecko/20130331 Firefox/21.0"
    },
    "FFWin": {
        "Id": "FFWin",
        "Name": "Firefox on Windows",
        "UserAgent": "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0"
    }
})
'''
Windows Phone
'''
WinPhone = toObj({
    "Win7Phone": {
        "Id": "Win7Phone",
        "Name": "Windows Phone 7",
        "UserAgent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0; LG; GW910)"
    },
    "Win75Phone": {
        "Id": "Win75Phone",
        "Name": "Windows Phone 7.5",
        "UserAgent": "Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; SGH-i917)"
    },
    "Win8Phone": {
        "Id": "Win8Phone",
        "Name": "Windows Phone 8",
        "UserAgent": "Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 920)"
    }
})
'''
iOS
'''
iOS = toObj({
    "iPad": {
        "Id": "iPad",
        "Name": "iPad",
        "UserAgent": "Mozilla/5.0 (iPad; CPU OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3"
    },
    "iPhone": {
        "Id": "iPhone",
        "Name": "iPhone",
        "UserAgent": "Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3"
    },
    "iPod": {
        "Id": "iPod",
        "Name": "iPod",
        "UserAgent": "Mozilla/5.0 (iPod; U; CPU like Mac OS X; en) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/3A101a Safari/419.3"
    }
})


Other = toObj({
    "BlackBerry": {
        "Id": "BlackBerry",
        "Name": "BlackBerry - Playbook 2.1",
        "UserAgent": "Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.1.0; en-US) AppleWebKit/536.2+ (KHTML, like Gecko) Version/7.2.1.0 Safari/536.2+"
    },
    "MeeGo": {
        "Id": "MeeGo",
        "Name": "MeeGo - Nokia N9",
        "UserAgent": "Mozilla/5.0 (MeeGo; NokiaN9) AppleWebKit/534.13 (KHTML, like Gecko) NokiaBrowser/8.5.0 Mobile Safari/534.13"
    }
})

Default = Chrome.ChromeWin.UserAgent

使用:

import  UserAgent as ua
import requests


print("默认标识",ua.Default)
print("小米标识",ua.Android.Xiaomi.UserAgent)

_headers={
    'Accept-Language': 'zh-CN,zh;q=0.8',
    'Content-Type': 'text/html;Charset=utf-8',
    "User-Agent":ua.Android.Xiaomi.UserAgent
}
rd = requests.get("http://www.jianshu.com/", params=None, headers=_headers)
rd.encoding = 'utf-8'
print(rd.text) 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,569评论 4 363
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,499评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,271评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,087评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,474评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,670评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,911评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,636评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,397评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,607评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,093评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,418评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,074评论 3 237
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,092评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,865评论 0 196
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,726评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,627评论 2 270

推荐阅读更多精彩内容

  • Since Jan.26th,2016 1、ubuntu 下运行 python 的几种方式 在 terminal...
    Rco阅读 2,530评论 0 2
  • (一)、启动服务器 (二)、创建数据库表 或 更改数据库表或字段 Django 1.7.1及以上 用以下命令 1....
    夏天夏星阅读 5,549评论 0 17
  • 入旧旅,灯未熄,心中愁郁。 看其中,漂流客,孤非酒济。 便下卧,听清曲,年岁无期。 何尝千里小店住,独自思黄鹂。 ...
    Weihnachten阅读 207评论 1 0
  • 6月6日,乐视云盘宣布将于6月30日停止个人云盘业务。这是今年关闭的第1个网盘,是去年以来关闭的第8个网盘。 去年...
    深海淡蓝阅读 867评论 0 0
  • 身为东野圭吾头号粉丝的我第一次看这种社会科学的书,以前一直不喜欢这类的书籍,枯燥,乏味,让人看不下去。我能遇见这本...
    陈慕小姐阅读 221评论 0 4