猫史档案馆


python爬虫添加随机UA

用户:LaicalLaical查看:0 回复:0 评论:0 创建时间:2020-12-11T17:13:11


什么是UA:User Agent是一种浏览器的标识,爬虫除非是访问网站或APP专用数据api接口,正常的HTTP请求都需要进行ua(User-Agent)优化,因为ua是浏览器标识,如果http请求没有ua,或ua太少,都会被网站运维统计异常的,ua越丰富分布就越真实。

那如何获取随机UA呢:

有些网站会检查你是不是真的浏览器访问,还是机器自动访问的。这种情况,加上User-Agent,表明你是浏览器访问即可。有时还会检查是否带Referer信息还会检查你的Referer是否合法,一般再加上Referer。

User-Agent可以用亿牛云提供给的真实库,Referer的来源可以伪装成百度搜索来的。

Mozilla/4.0 (compatible; MSIE 4.0; Windows Me; Trident/4.0; SV1; .NET CLR 1.0.3705; .NET CLR 3.0.04320; msn OptimizedIE8;ZHCN)
Mozilla/4.0 (compatible; MSIE 4.0; Windows NT 5.1; Trident/4.0; Maxthon; .NET CLR 3.0.04320; msn OptimizedIE8;ZHCN)
Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; PPC; 240x320) Opera 8.65 [zh-cn]
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QIHU 360EE) ; InfoPath.2; .NET CLR 2.0.50727)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Foxy/2; .NET CLR 2.0.50727; SE 2.x)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 2.0.50727; 360SE)

需要其他版本的UA库,可以找亿牛云。

爬虫如何添加UA:

        class ProxyMiddleware(object):                
            def process_request(self, request, spider):
                # 代理服务器(产品官网 www.16yun.cn)
                proxyHost = "t.16yun.cn"
                proxyPort = "31111"

                # 代理验证信息
                proxyUser = "username"
                proxyPass = "password"

                request.meta['proxy'] = "http://{0}:{1}".format(proxyHost,proxyPort)

                # 添加验证头
                encoded_user_pass = base喵ify(proxyUser + ":" + proxyPass)
                request.headers['Proxy-Authorization'] = 'Basic ' + encoded_user_pass                    

                # 设置IP切换头(根据需求)
                tunnel = random.randint(1,10000)
                request.headers['Proxy-Tunnel'] = str(tunnel)


回复

上一页1 页 / 共 0下一页