urllib库添加headers的一般方法
对于请求一些网站,我们需要加上请求头才可以完成网页的抓取,不然会得到一些错误,无法返回抓取的网页。下面,介绍两种添加请求头的方法。
方法一:借助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实例对象
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
# 案例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,代码如下:
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
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是用字典类型来传入还是元组类型。
urllib库添加headers的一般方法相关推荐
- python requests下载图片_Python使用urllib库、requests库下载图片的方法比较
我们知道,使用Python制作一个爬虫程序,requests库是一个不错的选择,requests发送网络请求非常简单,比较使用urllib库,使用requests库可以大大减少代码量,它还可以定制请求 ...
- python urlretrieve_使用urllib库的urlretrieve()方法下载网络文件到本地的方法
概述 见源码 源码 # !/usr/bin/env python # -*- coding:utf-8 -*- """ 图片(文件)下载,核心方法是 urllib.url ...
- solidworks渲染材质库_solidworks材质库怎么添加?SolidWorks软件常用材质库添加和使用方法...
solidworks材质库在哪下载?solidworks材质库怎么添加?solidworks材质库怎么使用?在上篇文章中小编给大家分享了solidworks材质库大全,共有8款,接下来小编就solid ...
- 【网络爬虫】(1) 网络请求,urllib库介绍
各位同学好,今天开始和各位分享一下python网络爬虫技巧,从基本的函数开始,到项目实战.那我们开始吧. 1. 基本概念 这里简单介绍一下后续学习中需要掌握的概念. (1)http 和 https 协 ...
- python中的urllib库_七、urllib库(一)
python2中,有urllib和urllib2两个库,在python3中统一为urllib库 它是python内置的HTTP请求库,包含了4个模块: request:最基本的HTTP请求模块,用来模 ...
- python urllib安装_Python Urllib库
一.什么是Urllib 我们首先了解一下 Urllib 库,它是 Python 内置的 HTTP 请求库,也就是说我们不需要额外安装即可使用,它包含四个模块:第一个模块 request,它是最基本的 ...
- Python爬虫urllib库的使用
urllib 在Python2中,有urllib和urllib2两个库实现请求发送,在Python3中,统一为urllib,是Python内置的HTTP请求库 request:最基本的HTTP请求模块 ...
- python中的urllib库_python3里的Urllib库
首先Urllib是python内置的HTTP请求库. 包括以下模块: urllib.request 请求模块: urllib.error 异常处理模块: urllib.parse url解析模块: u ...
- Python 爬虫---(3)Urllib库使用介绍
1.Urllib库使用详解 Urllib是python内置的HTTP请求库 包括以下模块 urllib.request 请求模块 urllib.error 异常处理模块 urllib.parse ur ...
最新文章
- 防水+四扬声器诺基亚X7细节
- 腾讯云数据库2020年度盛典等你来
- 自定义会话状态存储提供程序
- 第五十六期:百度CTO王海峰CNCC2019演讲:深度学习平台支撑产业智能化
- 线性代数学的中国根源
- Linux 启动流程即init程序分析--2
- Python 中遇到note: see declaration of '_ts'
- POJ3579 Median【二分法+中位数】
- ucos任务调度函数 OSSched()函数分析 ,任务切换函数
- 指定火狐浏览器安装位置
- CLR寄宿(上) MSCOREE.DLL
- Python3.6下安装爬虫scrapy框架的安装步骤以及遇到的诸多问题
- 唯有读书,能战胜这个爆炸的时代
- LR9.10破解方法。
- 【优秀的下载工具】Leech for Mac 3.1.4
- Android模拟器横屏和竖屏的切换
- 产品运营都必须知道的数据指标们
- DPU — 完全可编程网络
- 2020年最好的机器人学仿真工具软件汇总
- 分析编程题c语言,二级C语言部分上机编程题详细分析