python爬虫请求头的使用

 更新时间:2020年12月01日 11:29:55   作者:Klose_10  
这篇文章主要介绍了python爬虫请求头的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

爬虫请求头

网页获取:

通过urlopen来进行获取

requset.urlopen(url,data,timeout)

第一个参数url即为URL,第二个参数data是访问URL时要传送的数据,第三个timeout是设置超时时间。
第二三个参数是可以不传送的,data默认为空None,timeout默认为 socket._GLOBAL_DEFAULT_TIMEOUT
第一个参数URL是必须要加入的,执行urlopen方法之后,返回一个response对象,返回信息便保存在这里面

from urllib.request import urlopen

url = "https://www.baidu.com/"
respons = urlopen(url)#最简单的爬取情况这样爬取大部分网页无法爬取成功

response对象:

response.read()
read()方法就是读取文件里的全部内容,返回bytes类型

print(type(respons.read()))#结果为bytes类型所以需要进行转码
print(type(respons.read().decode()))#通过decode转码结果为str

response.getcode()
返回 HTTP的响应码,成功返回200,4服务器页面出错,5服务器问题

response.geturl()
返回 返回实际数据的实际URL,防止重定向问题

response.info()
返回 服务器响应的HTTP报头

Request对象

Request对象,由于urlopen参数可以传入一个request请求(可以理解成为再加一步封装的功能)因为在构建请求时还需要加入好多内容,通过构建一个request,服务器响应请求得到应答,这样显得逻辑上清晰明确

from urllib.request import urlopen,Request
from fake_useragent import UserAgent#这个包可以随机生成User-Agent

url = "https://www.baidu.com/"
headers = {"User-Agent":UserAgent().firefox}#生成火狐的
request = Request(url,headers=headers)
response = urlopen(request)

a=response.read().decode()

Get请求

浏览器通过GET方法发出请求
爬虫主要通过get再url中加入请求的参数,由于中文的需要转码通过
Urllib.parse.urlencode() 针对多个参数进行转码操作输入格式为字典类型
Urllib.parse.quote() 针对单个字符串进行转码操作
Str格式.format( ) 用于拼接字符串

post请求

一般在需要登录的地方用的比较多
需要在request请求中加如一个data用来传入参数
参数的形式要以字典格式通过urllib.parse.urlencode()进行转换成字符串形式
再通过encode()函数对字符串进行转码(默认值就可以)

发送请求/响应header头的含义

名称 含义
Accept 告诉服务器,客户端支持的数据类型
Accept-Charset 告诉服务器,客户端采用的编码
Accept-Encoding 告诉服务器,客户机支持的数据压缩格式
Accept-Language 告诉服务器,客户机的语言环境
Host 客户机通过这个头告诉服务器,想访问的主机名
If-Modified-Since 客户机通过这个头告诉服务器,资源的缓存时间
Referer 客户机通过这个头告诉服务器,它是从哪个资源来访问服务器的。(一般用于防盗链)
User-Agent 客户机通过这个头告诉服务器,客户机的软件环境
Cookie 客户机通过这个头告诉服务器,可以向服务器带数据
Refresh 服务器通过这个头,告诉浏览器隔多长时间刷新一次
Content-Type 服务器通过这个头,回送数据的类型
Content-Language 服务器通过这个头,告诉服务器的语言环境
Server 服务器通过这个头,告诉浏览器服务器的类型
Content-Encoding 服务器通过这个头,告诉浏览器数据采用的压缩格式
Content-Length 服务器通过这个头,告诉浏览器回送数据的长度

Ajax请求
用于提取动态的页面 网页数据根据拖动进行显示
通过浏览器工具箱,查找包的信息,找到url的规律进行爬取
如果无法知道要循环多少次则规定一个死循环,爬取页面为空时停止循环
也可以通过改变url一次性输出更多的网页信息(只要服务器允许)

https请求
因为在有些浏览器中存在很多证书所以在大部分网页爬取的时候不用改变证书或者添加证书但有些自己写证书的网站需要进行这一步操作
https请求=在http上加ssl,http请求是明文直接可以看见,为了安全要加上ssl
可以选择忽略证书进行爬取 context = ssl._create_unverified_context()

到此这篇关于python爬虫请求头的使用的文章就介绍到这了,更多相关python爬虫请求头内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 总结Python编程中函数的使用要点

    总结Python编程中函数的使用要点

    这篇文章主要介绍了Python编程中函数的使用要点总结,文中也讲到了人民群众喜闻乐见的lambda表达式的用法,需要的朋友可以参考下
    2016-03-03
  • Python离线安装openpyxl模块的步骤

    Python离线安装openpyxl模块的步骤

    这篇文章主要介绍了Python离线安装openpyxl模块的步骤,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • Python原始字符串(raw strings)用法实例

    Python原始字符串(raw strings)用法实例

    这篇文章主要介绍了Python原始字符串(raw strings)用法实例,在使用Python进行字符串处理的过程中非常具有实用价值,需要的朋友可以参考下
    2014-10-10
  • python和mysql交互操作实例详解【基于pymysql库】

    python和mysql交互操作实例详解【基于pymysql库】

    这篇文章主要介绍了python和mysql交互操作,结合实例形式详细分析了Python基于pymysql库实现mysql数据库的连接、增删改查等各种常见操作技巧,需要的朋友可以参考下
    2019-06-06
  • Python paramiko使用方法代码汇总

    Python paramiko使用方法代码汇总

    这篇文章主要介绍了Python paramiko使用方法代码汇总,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • 使用python中的in ,not in来检查元素是不是在列表中的方法

    使用python中的in ,not in来检查元素是不是在列表中的方法

    今天小编就为大家分享一篇使用python中的in ,not in来检查元素是不是在列表中的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • Python用zip函数同时遍历多个迭代器示例详解

    Python用zip函数同时遍历多个迭代器示例详解

    这篇文章主要给大家进行介绍了Python如何用zip函数同时遍历多个迭代器,文中给出了示例以及原理和注意事项,相信会对大家的理解和学习很有帮助,有需要的朋友们下面来一起学习学习吧。
    2016-11-11
  • 一步步教你用python连接oracle数据库

    一步步教你用python连接oracle数据库

    oracle作为最强大的数据库,Python也提供了足够的支持。不过与其他数据库略有不同,下面这篇文章主要给大家介绍了关于如何使用python连接oracle数据库的相关资料,需要的朋友可以参考下
    2023-04-04
  • Python安装jieba库详细教程

    Python安装jieba库详细教程

    jieba库是一款优秀的 Python 第三方中文分词库,jieba 支持三种分词模式:精确模式、全模式和搜索引擎模式,这篇文章主要介绍了Python安装jieba库教程,需要的朋友可以参考下
    2023-03-03
  • 举例讲解Python中的Null模式与桥接模式编程

    举例讲解Python中的Null模式与桥接模式编程

    这篇文章主要介绍了Python中的Null模式与桥接模式编程,Null模式与桥接模式都属于Python的设计模式编程,需要的朋友可以参考下
    2016-02-02

最新评论