python爬虫之User-Agent用户信息

python爬虫之User-Agent用户信息

  爬虫是自动的爬取网站信息,实质上我们也只是一段代码,并不是真正的浏览器用户,加上User-Agent(用户代理,简称UA)信息,只是让我们伪装成一个浏览器用户去访问网站,然而一个用户频繁的访问一个网站很容易被察觉,既然我们可以伪装成浏览器,那么也同样可以通过UA信息来变换我们的身份。

  整理部分UA信息

Opera
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60
Opera/8.0 (Windows NT 5.1; U; en)
Mozilla/5.0 (Windows NT 5.1; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.50
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.50

Firefox
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0
Mozilla/5.0 (X11; U; Linux x86_64; zh-CN; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10

Safari
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2

chrome
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11
Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.133 Safari/534.16

360
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36
Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko

淘宝浏览器
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.11 TaoBrowser/2.0 Safari/536.11

猎豹浏览器
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.71 Safari/537.1 LBBROWSER
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; LBBROWSER) 
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E; LBBROWSER)"

QQ浏览器
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; QQBrowser/7.0.3698.400)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E)

sogou浏览器
Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.84 Safari/535.11 SE 2.X MetaSr 1.0
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SV1; QQDownload 732; .NET4.0C; .NET4.0E; SE 2.X MetaSr 1.0)

maxthon浏览器
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Maxthon/4.4.3.4000 Chrome/30.0.1599.101 Safari/537.36

UC浏览器
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 UBrowser/4.0.3214.0 Safari/537.36

------UA信息链接:https://blog.csdn.net/tao_627/article/details/42297443 ------

User-Agent的添加方法

  UA的添加方法有两种:1.实例化Request类时添加;2.调用Request类的实例方法add_header()动态添加。

  方法一

 1 import urllib.request
 2
 3
 4 def load_message():
 5     url = ‘https://www.baidu.com‘
 6
 7     header = {
 8         ‘user-agent‘: ‘Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.92  9 Safari/537.36‘,
10         ‘test‘: ‘123‘
11     }
12
13     request = urllib.request.Request(url, headers=header)  # 添加请求头
14
15     response = urllib.request.urlopen(request)
16     response_str = response.read().decode(‘utf-8‘)
17
18     request_header_get = request.get_header(‘User-agent‘)  # 坑:查看时必须首字母大写,其他字母均小写,否则返回None
19     print(request_header_get)  # 获取请求头的指定内容方式
20
21     # request_header_get = request.get_header(‘Test‘)
22     # print(request_header_get)
23     #
24     # request_header_get = request.get_header(‘test‘)
25     # print(request_header_get)
26
27     return response.headers, request.headers, response_str
28
29
30 response_header, request_header, response_data = load_message()
31 print(response_header)
32 print(‘------------------------------------‘)
33 print(request_header)
34 print(‘------------------------------------‘)
35 print(response_data)

  方法二

 1 import urllib.request
 2
 3
 4 def load_message():
 5     url = ‘https://www.baidu.com‘
 6
 7     request = urllib.request.Request(url)
 8
 9     request.add_header(‘user-agent‘, ‘Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)10 Chrome/69.0.3497.92Safari/537.36‘)  # 动态添加请求头信息
11
12     response = urllib.request.urlopen(request)
13     response_str = response.read().decode(‘utf-8‘)
14
15     request_header_get = request.get_header(‘User-agent‘)  # 坑:查看时必须首字母大写,其他字母均小写,否则返回None
16     print(request_header_get)  # 获取请求头的指定内容方式
17
18     return response.headers, request.headers, response_str
19
20
21 response_header, request_header, response_data = load_message()
22 print(response_header)
23 print(‘------------------------------------‘)
24 print(request_header)
25 print(‘------------------------------------‘)
26 print(response_data)

随机UA信息添加至请求头的案例

 1 #!/usr/bin/env python
 2 # -*- coding=utf-8 -*-
 3 # Author: Snow
 4
 5 import urllib.request
 6 import random
 7
 8
 9 def random_agent():
10     url = ‘https://www.baidu.com‘
11
12     user_agent_list = [
13         ‘Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 ‘,
14         ‘Mozilla/5.0 (Windows NT 5.1; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.50‘,
15         ‘Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0‘,
16         ‘Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2‘,
17         ‘Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36‘,
18         ‘Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko‘,
19         ‘Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.11 TaoBrow20 ser/2.0 Safari/536.11‘
21     ]
22
23     user_agent_value = random.choice(user_agent_list)
24
25     request = urllib.request.Request(url)
26     request.add_header(‘User-Agent‘, user_agent_value)
27
28     request_user_agent = request.get_header(‘User-agent‘)
29
30     response = urllib.request.urlopen(request)
31     response_str = response.read().decode(‘utf-8‘)
32
33     return request_user_agent, response_str
34
35
36 cat_user_agent, _ = random_agent()
37 print(cat_user_agent)

原文地址:https://www.cnblogs.com/snow-lanuage/p/10362287.html

时间: 2024-08-19 11:09:12

python爬虫之User-Agent用户信息的相关文章

python爬虫抓取哈尔滨天气信息

python 爬虫 爬取哈尔滨天气信息 - http://www.weather.com.cn/weather/101050101.shtml 环境: windows7 python3.4(pip install requests:pip install BeautifulSoup4) 代码:(亲测可以正确执行) 1 # coding:utf-8 2 """ 3 总结一下,从网页上抓取内容大致分3步: 4 1.模拟浏览器访问,获取html源代码 5 2.通过正则匹配,获取指定

简易python爬虫 - 爬取站长论坛信息

爬取目标: 收集网站帖子里发帖人用户名,发帖人ID;帖子的ID,发帖内容;网站title 提前需要准备的python库 pip3 install requests //用于获得网站的源码 pip3 install bs4 //解析遍历网站标签 pip3 install urllib //解析网站的url 首先导入包 import requestsfrom bs4 import BeautifulSoupfrom urllib.parse import parse_qs,urlparse impo

python爬虫爬取网上药品信息并且存入数据库

我最近在学习python爬虫,然后正好碰上数据库课设,我就选了一个连锁药店的,所以就把网上的药品信息爬取了下来. 1,首先分析网页 2,我想要的是评论数比较多的,毕竟好东西大概是买的人多才好.然后你会发现它的url地址是有规律的里面的j1是指第一页,j2第二页,这样构建一个url_list. 1 url_list = 'https://www.111.com.cn/categories/953710-a0-b0-c31-d0-e0-f0-g0-h0-i0-j%s.html'#然后循环获取响应 2

python练习题1优化:用户信息保存到文件

需求: 控制台根据用户选择实现: 1.添加用户(个别信息必填)add user 2.展示用户列表 list user 3.根据名字搜索用户信息 search user 4.根据名字修改用户信息 modify user 5.退出 exit def add_user(): filename=raw_input("你想保存到的文件名称为:") fo=open(filename,"a") print "请输入保存信息内容:" choise="y

[Python爬虫] Selenium爬取新浪微博客户端用户信息、热点话题及评论 (上)

一. 文章介绍 前一篇文章"[python爬虫] Selenium爬取新浪微博内容及用户信息"简单讲述了如何爬取新浪微博手机端用户信息和微博信息. 用户信息:包括用户ID.用户名.微博数.粉丝数.关注数等. 微博信息:包括转发或原创.点赞数.转发数.评论数.发布时间.微博内容等. 它主要通过从文本txt中读取用户id,通过"URL+用户ID" 访问个人网站,如柳岩: http://weibo.cn/guangxianliuya 因为手机端数据相对精简简单,所以采用输

Python分布式爬虫抓取知乎用户信息并进行数据分析

在以前的文章中,我写过一篇使用selenium来模拟登录知乎的文章,然后在很长一段时间里都没有然后了... 不过在最近,我突然觉得,既然已经模拟登录到了知乎了,为什么不继续玩玩呢?所以就创了一个项目,用来采集知乎的用户公开信息,打算用这些数据试着分析一下月入上万遍地走.清华北大不如狗的贵乎用户像不像我们想象中的那么高质量. 第一步:首先是爬虫抓取用户信息,能用图解释的绝不多废话: 但是还是得主要说下: 首先:个人感觉,在写一些小的demo时用框架就反而更显得繁琐,所以我没有使用框架,而是自己使用

Python爬虫从入门到放弃(十八)之 Scrapy爬取所有知乎用户信息(上)

爬取的思路 首先我们应该找到一个账号,这个账号被关注的人和关注的人都相对比较多的,就是下图中金字塔顶端的人,然后通过爬取这个账号的信息后,再爬取他关注的人和被关注的人的账号信息,然后爬取被关注人的账号信息和被关注信息的关注列表,爬取这些用户的信息,通过这种递归的方式从而爬取整个知乎的所有的账户信息.整个过程通过下面两个图表示: 爬虫分析过程 这里我们找的账号地址是:https://www.zhihu.com/people/excited-vczh/answers我们抓取的大V账号的主要信息是:

Python爬虫从入门到放弃(十九)之 Scrapy爬取所有知乎用户信息(下)

在上一篇文章中主要写了关于爬虫过程的分析,下面是代码的实现,完整代码在:https://github.com/pythonsite/spider items中的代码主要是我们要爬取的字段的定义 class UserItem(scrapy.Item): id = Field() name = Field() account_status = Field() allow_message= Field() answer_count = Field() articles_count = Field()

python爬虫 爬取知乎用户的用户信息

我用python爬虫找到了不想告诉我她知乎ID的妹纸的ID--. 在我做了这件事情之后 , 她觉得我越来越懂她了 , 嘻嘻 有一天 , 我发现我心仪已久的妹纸在朋友圈里分享了知乎专栏的文章 , 就知道她也刷知乎 . 如果在知乎上关注她 , 我就能知道 , 她最近关注什么 , 心里想些什么 , 了解了解她喜欢的方面 , 还能作为谈资 , 简直太赞了 (*^^)v . 但是输入她的名字-- 在知乎上根本找不到好吗 (?`灬′?) 我们两个聊天的时候 , 刚好说到了她分享的那篇文章 , 我很自然的说: