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中使用异常处理来判断运行的操作系统平台方法
Jan 22 Python
python开发之for循环操作实例详解
Nov 12 Python
Django学习教程之静态文件的调用详解
May 08 Python
Python socket套接字实现C/S模式远程命令执行功能案例
Jul 06 Python
Django model序列化为json的方法示例
Oct 16 Python
更改Python的pip install 默认安装依赖路径方法详解
Oct 27 Python
python实现抖音点赞功能
Apr 07 Python
flask框架jinja2模板与模板继承实例分析
Aug 01 Python
python实现的接收邮件功能示例【基于网易POP3服务器】
Sep 11 Python
Python对接支付宝支付自实现功能
Oct 10 Python
简单的Python人脸识别系统
Jul 14 Python
python 学习GCN图卷积神经网络
May 11 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
AES加解密在php接口请求过程中的应用示例
2016/10/26 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
2017/08/28 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
2020/03/24 PHP
js no-repeat写法 背景不重复
2009/03/18 Javascript
Jquery 复选框取值兼容FF和IE8(测试有效)
2013/10/29 Javascript
javascript实现点击按钮让DIV层弹性移动的方法
2015/02/24 Javascript
javascript截取字符串小结
2015/04/28 Javascript
js模拟淘宝网的多级选择菜单实现方法
2015/08/18 Javascript
JavaScript基于Dom操作实现查找、修改HTML元素的内容及属性的方法
2017/01/20 Javascript
js实现文字选中分享功能
2017/01/25 Javascript
Javascript实现找不同色块的游戏
2017/07/17 Javascript
JavaScript(js)处理的HTML事件、键盘事件、鼠标事件简单示例
2019/11/19 Javascript
通过js实现压缩图片上传功能
2020/02/25 Javascript
vue.js实现点击图标放大离开时缩小的代码
2021/01/27 Vue.js
python模块之StringIO使用示例
2015/04/08 Python
Python编程django实现同一个ip十分钟内只能注册一次
2017/11/03 Python
深入理解Python中的super()方法
2017/11/20 Python
对web.py设置favicon.ico的方法详解
2018/12/04 Python
windows下搭建python scrapy爬虫框架步骤
2018/12/23 Python
神经网络相关之基础概念的讲解
2018/12/29 Python
Python读取多列数据以及用matplotlib制作图表方法实例
2020/09/23 Python
Deichmann英国:德国鞋类零售商
2021/01/30 全球购物
个人自我评价和职业目标
2014/01/24 职场文书
小班评语大全
2014/05/04 职场文书
汉语言文学专业自荐信
2014/06/11 职场文书
企业法人代表授权委托书
2014/10/02 职场文书
机关干部四风问题自我剖析及整改措施
2014/10/26 职场文书
补充协议书
2015/01/28 职场文书
2015年全国爱耳日活动总结
2015/02/27 职场文书
2015年小班保育员工作总结
2015/05/27 职场文书
高二语文教学反思
2016/02/16 职场文书
python爬取豆瓣电影TOP250数据
2021/05/23 Python
Spark SQL 2.4.8 操作 Dataframe的两种方式
2021/10/16 SQL Server
AJAX实现省市县三级联动效果
2021/10/16 Javascript
MySQL中rank() over、dense_rank() over、row_number() over用法介绍
2022/03/23 MySQL
springboot为异步任务规划自定义线程池的实现
2022/06/14 Java/Android