Python urllib库如何添加headers过程解析


Posted in Python onOctober 05, 2020

对于请求一些网站,我们需要加上请求头才可以完成网页的抓取,不然会得到一些错误,无法返回抓取的网页。下面,介绍两种添加请求头的方法。

方法一:借助build_opener和addheaders完成

import urllib.request
url="http://www.meizitu.com"
#注意:在urllib 中headers是元组
headers=("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36 QIHU 360SE")

opener=urllib.request.build_opener()
opener.addheaders=[headers]
data=opener.open(url)
print(data.read())

注意:此处的headers要写为一个元组类型才可以。写为字典类型的话会报错!

方法二、创建一个Request实例对象

# 案例1
import urllib.request
url="http://www.meizitu.com"
#注意:在urllib 中这种的headers 是需要是字典的
headers={"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36 QIHU 360SE"}
req=urllib.request.Request(url=url,headers=headers)
file=urllib.request.urlopen(req)

#出现有些解码错误的话,加上“ignore”就可以啦
print(file.read().decode("utf-8",'ignore'))

注意:此处的headers要写为一个字典类型才可以。

创建一个Reques对象,把需要的headers,url,proxy 都放进去,或者在post 请求中还可以把编码过后的data 值放进去,再用urlopen 打开,就比较方便了。

另外,这种方法还可以用add_headers()来添加headers,代码如下:

import urllib.request
try:
  url="http://www.meizitu.com"
  req=urllib.request.Request(url=url)

  req.add_header("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36 QIHU 360SE")
  file=urllib.request.urlopen(req,timeout=10.1)

  print(file.read().decode("utf-8",'ignore'))
except Exception as e:
  print("时间超时",str(e))

总结:通过以上两种方法,可以完成请求头的相关参数设置,但是得注意headers是用字典类型来传入还是元组类型。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现简单的socket server实例
Apr 29 Python
python基础学习之如何对元组各个元素进行命名详解
Jul 12 Python
python format 格式化输出方法
Jul 16 Python
Python3中bytes类型转换为str类型
Sep 27 Python
python实现支付宝转账接口
May 07 Python
python批量修改ssh密码的实现
Aug 08 Python
pytorch 实现在预训练模型的 input上增减通道
Jan 06 Python
python 实现仿微信聊天时间格式化显示的代码
Apr 17 Python
解决更改AUTH_USER_MODEL后出现的问题
May 14 Python
解决keras使用cov1D函数的输入问题
Jun 29 Python
pytorch下的unsqueeze和squeeze的用法说明
Feb 06 Python
Python操作CSV格式文件的方法大全
Jul 15 Python
Python3获取cookie常用三种方案
Oct 05 #Python
Python collections.deque双边队列原理详解
Oct 05 #Python
Python全局变量与global关键字常见错误解决方案
Oct 05 #Python
Python定时任务框架APScheduler原理及常用代码
Oct 05 #Python
Python xmltodict模块安装及代码实例
Oct 05 #Python
Python pathlib模块使用方法及实例解析
Oct 05 #Python
Python fileinput模块如何逐行读取多个文件
Oct 05 #Python
You might like
php Notice: Undefined index 错误提示解决方法
2010/08/29 PHP
让php处理图片变得简单 基于gb库的图片处理类附实例代码下载
2011/05/17 PHP
zend framework配置操作数据库实例分析
2012/12/06 PHP
PHP打印输出函数汇总
2016/08/28 PHP
laravel 5.4中实现无限级分类的方法示例
2017/07/27 PHP
laravel批量生成假数据的方法
2019/10/09 PHP
JavaScript创建一个欢迎cookie弹出窗实现代码
2013/03/15 Javascript
每天一篇javascript学习小结(Date对象)
2015/11/13 Javascript
文件上传的几个示例分享【推荐】
2016/12/16 Javascript
angular或者js怎么确定选中ul中的哪几个li
2017/08/16 Javascript
React为 Vue 引入容器组件和展示组件的教程详解
2018/05/03 Javascript
node中的cookie的具体使用
2018/09/13 Javascript
Node.js事件的正确使用方法
2019/04/05 Javascript
layer.js之回调销毁对话框的例子
2019/09/11 Javascript
vue.js this.$router.push获取不到params参数问题
2020/03/03 Javascript
[00:36]TI7不朽珍藏III——斯温不朽展示
2017/07/15 DOTA
Python Web框架Pylons中使用MongoDB的例子
2013/12/03 Python
python提取页面内url列表的方法
2015/05/25 Python
Python实现两款计算器功能示例
2017/12/19 Python
python实现定时发送qq消息
2019/01/18 Python
Django Admin中增加导出Excel功能过程解析
2019/09/04 Python
OpenCV中VideoCapture类的使用详解
2020/02/14 Python
Python如何实现小程序 无限求和平均
2020/02/18 Python
Blank NYC官网:夹克、牛仔裤等
2020/12/16 全球购物
物业门卫岗位职责
2013/12/28 职场文书
运动会入场式解说词
2014/02/18 职场文书
优秀毕业生求职信
2014/06/05 职场文书
入党积极分子学习党的纲领思想汇报
2014/09/13 职场文书
2014大学班主任工作总结
2014/11/08 职场文书
检讨书模板
2015/01/29 职场文书
人力资源部岗位职责
2015/02/11 职场文书
岗位职责范本大全
2015/02/26 职场文书
检举信的写法
2019/04/10 职场文书
python process模块的使用简介
2021/05/14 Python
浅谈JavaScript浅拷贝和深拷贝
2021/11/07 Javascript
Win11远程连接不上怎么办?Win11远程桌面用不了的解决方法
2022/08/05 数码科技