python爬取准备三 urllib2模块
发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,urllib/urllib2默认的User-Agent是Python-urllib/2.7,容易被检查到是爬虫,所以我们要构造一个请求对象,要用到request方法。1.查看Header信息2.设置U
千家信息网最后更新 2024年11月23日python爬取准备三 urllib2模块
urllib/urllib2默认的User-Agent是Python-urllib/2.7,容易被检查到是爬虫,所以我们要构造一个请求对象,要用到request方法。
1.查看Header信息
2.设置User-Agent模仿浏览器访问数据
Request总共三个参数,除了必须要有url参数,还有下面两个:
data(默认空):是伴随 url 提交的数据(比如要post的数据),同时 HTTP 请求将从 "GET"方式 改为 "POST"方式。
headers(默认空):是一个字典,包含了需要发送的HTTP报头的键值对
# _*_ coding:utf-8 _*_import urllib2# User-Agent是爬虫与反爬虫的第一步ua_headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36'}# 通过urllib2.Request()方法构造一个请求对象request = urllib2.Request('http://www.baidu.com/',headers=ua_headers)#向指定的url地址发送请求,并返回服务器响应的类文件对象response = urllib2.urlopen(request)# 服务器返回的类文件对象支持python文件对象的操作方法# read()方法就是读取文件里的全部内容,返回字符串html = response.read()print html
3.选择随机的Use-Agent
为了防止封IP,先生成一个user-agent列表,然后从中随机选择一个
# _*_ coding:utf-8 _*_import urllib2import randomurl = 'http:/www.baidu.com/'# 可以试User-Agent列表,也可以是代理列表ua_list = ["Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1","Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6","Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6","Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1","Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5","Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3","Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3","Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3","Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3","Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3","Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3","Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24","Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24"]# 在User-Agent列表中随机选择一个User-Agentuser_agent = random.choice(ua_list)# 构造一个请求request = urllib2.Request(url)# add_header()方法添加/修改一个HTTP报头request.add_header('User-Agent',user_agent)#get_header()获取一个已有的HTTP报头的值,注意只能第一个字母大写,后面的要小写print request.get_header('User-agent')
4.urllib和urllib2的主要区别
urllib和urllib2都是接受URL请求的相关模块,但是提供了不同的功能,最显著的区别如下:
(1)urllib仅可以接受URL,不能创建,设置headers的request类实例;
(2)但是urllib提供urlencode()方法用来GET查询字符串的产生,而urllib2则没有(这是urllib和urllib2经常一起使用的主要原因)
(3)编码工作使用urllib的urlencode()函数,帮我们讲key:value这样的键值对转换成'key=value'这样的字符串,解码工作可以使用urllib的unquote()
函数
方法
对象
文件
字符
字符串
报头
数据
爬虫
选择
函数
参数
方式
服务器
utf-8
工作
服务
模块
不同
显著
三个
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库可以分几个表
接服务器上的运动拉绳该怎么用
数据库 放在固态盘
拾柒网络技术北京有限公司
航锦科技卫星互联网
数据库是一个什么计算机软件系统
网络安全防护措施继续教育
越秀区发改局数据库
宜兴微型软件开发设计规范
服务器安装esix6.7
宝塔的数据库管理怎么进不去
暗黑2 服务器跨度
bfts文件服务器
深圳大资管网络技术有限公司
数据库怎么做exe文件
mysql数据库数据同步
设计企业网络安全需求
sql语句事先存进数据库
创建数据库主键
公司采购服务器没有进项
青少年网络安全科普宣传资料
云服务器网络计费模式是什么意思
个人信息数据库核心
服务器主板家用
关于网络安全性的视频
代理服务器自动取消
服务器怎么架构
现在买的票是网络安全的吗
央行网络安全攻防比赛
成都网络安全研究所