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

方法一:借助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的一般方法相关推荐

  1. python requests下载图片_Python使用urllib库、requests库下载图片的方法比较

    我们知道,使用Python制作一个爬虫程序,requests库是一个不错的选择,requests发送网络请求非常简单,比较使用urllib库,使用requests库可以大大减少代码量,它还可以定制请求 ...

  2. python urlretrieve_使用urllib库的urlretrieve()方法下载网络文件到本地的方法

    概述 见源码 源码 # !/usr/bin/env python # -*- coding:utf-8 -*- """ 图片(文件)下载,核心方法是 urllib.url ...

  3. solidworks渲染材质库_solidworks材质库怎么添加?SolidWorks软件常用材质库添加和使用方法...

    solidworks材质库在哪下载?solidworks材质库怎么添加?solidworks材质库怎么使用?在上篇文章中小编给大家分享了solidworks材质库大全,共有8款,接下来小编就solid ...

  4. 【网络爬虫】(1) 网络请求,urllib库介绍

    各位同学好,今天开始和各位分享一下python网络爬虫技巧,从基本的函数开始,到项目实战.那我们开始吧. 1. 基本概念 这里简单介绍一下后续学习中需要掌握的概念. (1)http 和 https 协 ...

  5. python中的urllib库_七、urllib库(一)

    python2中,有urllib和urllib2两个库,在python3中统一为urllib库 它是python内置的HTTP请求库,包含了4个模块: request:最基本的HTTP请求模块,用来模 ...

  6. python urllib安装_Python Urllib库

    一.什么是Urllib 我们首先了解一下 Urllib 库,它是 Python 内置的 HTTP 请求库,也就是说我们不需要额外安装即可使用,它包含四个模块:第一个模块 request,它是最基本的 ...

  7. Python爬虫urllib库的使用

    urllib 在Python2中,有urllib和urllib2两个库实现请求发送,在Python3中,统一为urllib,是Python内置的HTTP请求库 request:最基本的HTTP请求模块 ...

  8. python中的urllib库_python3里的Urllib库

    首先Urllib是python内置的HTTP请求库. 包括以下模块: urllib.request 请求模块: urllib.error 异常处理模块: urllib.parse url解析模块: u ...

  9. Python 爬虫---(3)Urllib库使用介绍

    1.Urllib库使用详解 Urllib是python内置的HTTP请求库 包括以下模块 urllib.request 请求模块 urllib.error 异常处理模块 urllib.parse ur ...

最新文章

  1. 防水+四扬声器诺基亚X7细节
  2. 腾讯云数据库2020年度盛典等你来
  3. 自定义会话状态存储提供程序
  4. 第五十六期:百度CTO王海峰CNCC2019演讲:深度学习平台支撑产业智能化
  5. 线性代数学的中国根源
  6. Linux 启动流程即init程序分析--2
  7. Python 中遇到note: see declaration of '_ts'
  8. POJ3579 Median【二分法+中位数】
  9. ucos任务调度函数 OSSched()函数分析 ,任务切换函数
  10. 指定火狐浏览器安装位置
  11. CLR寄宿(上) MSCOREE.DLL
  12. Python3.6下安装爬虫scrapy框架的安装步骤以及遇到的诸多问题
  13. 唯有读书,能战胜这个爆炸的时代
  14. LR9.10破解方法。
  15. 【优秀的下载工具】Leech for Mac 3.1.4
  16. Android模拟器横屏和竖屏的切换
  17. 产品运营都必须知道的数据指标们
  18. DPU — 完全可编程网络
  19. 2020年最好的机器人学仿真工具软件汇总
  20. 分析编程题c语言,二级C语言部分上机编程题详细分析

热门文章

  1. 页面性能的基础因素 - 《Designing for Performance》
  2. 第十一章 异常,日志,断言和调试
  3. Java http方式提交短信到短信网关
  4. 【HDOJ】2510 符号三角形
  5. 远程java接口说明
  6. 硬盘安装WIN7方法
  7. Styled Label
  8. Linux 系统 vsftpd时区问题的解决
  9. [转载] C#面向对象设计模式纵横谈——8. Bridge桥接模式
  10. VC操作XML编程实例