jxt441621944 发表于 2020-8-13 17:33

把fake_useragent的所有useragent存在本地使用

最近跑以前写的爬虫代码,总是报错。原因是fake_useragent这个模块出了问题。

给没用过fake_useragent的小伙伴做个科普:
UserAgent就是用户代{过}{滤}理,是一串字符串,相当于是浏览器的身份证明,在写爬虫的时候频繁更换请求头中的UserAgent可以避免触发反爬机制(配合代{过}{滤}理IP食用更佳)。

fake_useragent就是可以获得一个随机的用户代{过}{滤}理的库,用法如下:
```
from fake_useragent import UserAgent
ua = UserAgent()
ua.random
# 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)'
```
在使用这个库的时候,其实是在访问在线的资源,然后得到包含用户代{过}{滤}理的json文件。但是这个资源在国外,容易触发time out。

因此今天在公司的服务器上直接把这个库所有的资源都存了下来:
```
ua_set = set()
for _ in trange(100000):
    ua_set.add(ua.ie)
    ua_set.add(ua.msie)
    ua_set.add(ua.opera)
    ua_set.add(ua.chrome)
    ua_set.add(ua.google)
    ua_set.add(ua.firefox)
    ua_set.add(ua.ff)
    ua_set.add(ua.safari)
    ua_set.add(ua.random)
               
print(len(ua_set))
# 250

with open('fake_ua.txt', 'w') as f:
    for fua in ua_set:
      f.write(fua + '\n')
```
循环了10万次,最后得到250个用户代{过}{滤}理(其实我开始只循环了1万次,最后只有250个,感觉可能有遗漏,于是循环了10万次,发现确实只有250个)

txt文档我附上了,有需要的可以自取。可以用下述代码随机获取用户代{过}{滤}理:
```
import random
with open('fake_ua.txt', 'r') as f:
    fake_ua =
print(random.choice(fake_ua))
# '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'
```

charles5272 发表于 2020-8-13 22:37

最近一直用fake_useragent,目前还没碰到像你这样的问题,谢谢分享,下下来做备用。

jxt441621944 发表于 2020-10-22 09:21

撒旦の恶 发表于 2020-10-3 21:30
大佬想问下这fake_useragent除了python能使用外,有没有Java版本的?

这个就是agent的里一个参数,你直接读取我的那个文件,加入到java代码里也一样

shj2k 发表于 2020-8-14 09:40

感谢分享 直接用方便多了

akia1412 发表于 2020-8-14 15:19

谢谢分享

清晨呀 发表于 2020-8-18 14:00

感谢分享

撒旦の恶 发表于 2020-10-3 21:30

大佬想问下这fake_useragent除了python能使用外,有没有Java版本的?

896749057 发表于 2020-11-3 17:19

哥加你用户名了,请同意下企鹅 有需求找你不知道能不能做

随梦期初 发表于 2020-11-4 15:13

这样确实挺好用的

jxt441621944 发表于 2020-11-6 16:55

896749057 发表于 2020-11-3 17:19
哥加你用户名了,请同意下企鹅 有需求找你不知道能不能做

不好意思啊,暂时不接活~
页: [1] 2
查看完整版本: 把fake_useragent的所有useragent存在本地使用