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中的异常处理简明介绍
Apr 13 Python
使用C语言来扩展Python程序和Zope服务器的教程
Apr 14 Python
Python编程之序列操作实例详解
Jul 22 Python
对python中Matplotlib的坐标轴的坐标区间的设定实例讲解
May 25 Python
Python学习小技巧总结
Jun 10 Python
python3安装speech语音模块的方法
Dec 24 Python
Python生成器的使用方法和示例代码
Mar 04 Python
python 设置输出图像的像素大小方法
Jul 04 Python
django echarts饼图数据动态加载的实例
Aug 12 Python
对python中的装包与解包实例详解
Aug 24 Python
python爬虫开发之使用Python爬虫库requests多线程抓取猫眼电影TOP100实例
Mar 10 Python
Python 下载Bing壁纸的示例
Sep 29 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页面,mysql数据库转utf-8乱码,utf-8编码问题总结
2015/08/27 PHP
PHP CURL post数据报错 failed creating formpost data
2016/10/16 PHP
php根据年月获取当月天数及日期数组的方法
2016/11/30 PHP
读jQuery之二(两种扩展)
2011/06/11 Javascript
jquery文字上下滚动的实现方法
2013/03/22 Javascript
JavaScript禁止复制与粘贴的实现代码
2016/05/16 Javascript
JavaScript-html标题滚动效果的简单实现
2016/09/08 Javascript
React Router基础使用
2017/01/17 Javascript
JavaScript简单拖拽效果(1)
2017/05/17 Javascript
vue中如何创建多个ueditor实例教程
2017/11/14 Javascript
node上的redis调用优化示例详解
2018/10/30 Javascript
d3绘制基本的柱形图的实现代码
2018/12/12 Javascript
微信小程序实现卡片层叠滑动效果
2019/06/21 Javascript
[04:59]2018DOTA2亚洲邀请赛 4.7 Mineski夺冠时刻
2018/04/09 DOTA
在Python中使用HTMLParser解析HTML的教程
2015/04/29 Python
Python爬取国外天气预报网站的方法
2015/07/10 Python
1 行 Python 代码快速实现 FTP 服务器
2018/01/25 Python
Django使用中间键实现csrf认证详解
2019/07/22 Python
pytorch 图像预处理之减去均值,除以方差的实例
2020/01/02 Python
pycharm 设置项目的根目录教程
2020/02/12 Python
详解vscode实现远程linux服务器上Python开发
2020/11/10 Python
css3打造一款漂亮的卡哇伊按钮
2013/03/20 HTML / CSS
推荐10个CSS3 制作的创意下拉菜单效果
2014/02/11 HTML / CSS
CSS3圆角边框和边界图片效果实例
2016/07/01 HTML / CSS
澳大利亚领先的美容护肤品零售商之一:SkincareStore
2018/01/22 全球购物
教师自荐书
2013/10/08 职场文书
历史学专业大学生找工作的自我评价
2013/10/16 职场文书
大学毕业生通用自荐信范文
2013/10/31 职场文书
教师岗位职责
2013/11/17 职场文书
目标责任书范文
2014/04/14 职场文书
爱国演讲稿400字
2014/05/07 职场文书
趣味运动会广播稿
2014/09/13 职场文书
安阳殷墟导游词
2015/02/10 职场文书
《黄山奇石》教学反思
2016/02/18 职场文书
2019年公司快递收发管理制度模板
2019/11/20 职场文书
IIS服务器中设置HTTP重定向访问HTTPS
2022/04/29 Servers