python爬取准备三 urllib2模块
发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,urllib/urllib2默认的User-Agent是Python-urllib/2.7,容易被检查到是爬虫,所以我们要构造一个请求对象,要用到request方法。1.查看Header信息2.设置U
千家信息网最后更新 2024年09月22日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安全错误
数据库的锁怎样保障安全
东营柒彩铜软件开发有限公司
深圳市网络安全和信息化委员会
u8的数据库
房产之友数据库未连接登陆
上海驰在互联网科技有限公司官网
数据库 查询 应用 简介
人事管理考勤软件开发
深圳高清视频会议服务器哪家好
三维建模数据库失败
薄荷护表油药品广告数据库
嘉定区网络软件开发厂家价格
计算机除了软件开发还有什么
大公司网络安全事件频发
昆明学院数据库系统原理
数据库合计公式
智慧树数据库单元测试
网络安全协议作业答案
服务器配置及管理技术分析
数据库中条件函数怎么用
服务器 web
陕西联想服务器虚拟化优势
数据库 自动下载
通达信代理服务器
上海宅倡网络技术有限公司
时钟服务器软件
信用社的软件开发岗怎么样
数据库可以存json么
王牌战争怎么创造服务器教程
铜仁网络安全系统
软件开发就成