python爬虫请求头是什么意思_python爬虫请求头的使用

这篇文章我们来讲一下在网站建设中,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爬虫请求头内容请搜索本站以前的文章或继续浏览下面的相关文章感谢支持!

相关阅读

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/442465.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

复化科特斯公式matlab_matlab实现复化NewtonCotes公式求积分的程序应用和代码

命令窗口输入被积函数2120ttedt。输入应为:。Step2:执行函数。输入形式为mymulNewtonCotes(ft,a,b,m,n);其中ft—被积函数,此体重,已经在第一步赋值;a—积分下限,本题中为0;b—积分…

单元格自适应宽度_最详细的Excel模块Openpyxl教程(二)-单元格操作详解

在以前的推文中,我们介绍了操作Excel的模块openpyxl的入门知识,相关推文可以从本公众号的底部相关菜单获取。接下来的推文我们来学习一下openpyxl这个python模块中的其他知识,本次推文我们来学习一下单元格(cell)操作的…

动态参数 maven_使用Jenkins Git参数实现分支标签动态选择

1.1 为什么要使用GIT参数?我们为什么要使用 git参数呢? 每个项目代码库都会有不同的分支,(如果你没有用多分支流水线的情况下)对于普通的流水线项目我们可以 让一条流水线来支持多个分支的发布,其实有时候你会发现每个分支的集成步…

走线和交互式布线_画PCB时,一些非常好的布线技巧

画PCB时,一些非常好的布线技巧布线是PCB设计过程中技巧最细、限定最高的,即使布了十几年布线的工程师也往往觉得自己不会布线,因为看到了形形色色的问题,知道了这根线布了出去就会导致什么恶果,所以,就变的…

相机裁剪旋转_怎么旋转视频画面角度

在用手机或相机拍摄视频时,有时候画面会出现镜像、画面倒转的情况,影响观看体验,那么视频怎么旋转才能将画面变为正常播放?有很多方法可以做到,以下我为你挑选了最简单的工具,详细给你说说:在线…

新代数控系统参数说明书_台湾新代宏程序编程书

点击右上角关注公众号,每天更新其实说起来宏就是用公式来加工零件的,比如说椭圆,如果没有宏的话,我们要逐点算出曲线上的点,然后慢慢来用直线逼近,如果是个光洁度要求很高的工件的话,那么需要计算很多的点&…

树莓派要mysql的密码_树莓派raspberry Pi 3B+系统中安装mysql过程中不提示输入密码,安装完后如何设置密码...

树莓派raspberry Pi 3B安装mysql未提示输入密码,安装后修改mysql密码默认密码使用mysql -uroot -p 命令连接mysql时,报错piraspberrypi:/ $ mysql -uroot -pEnter password:ERROR1698 (28000): Access denied for user rootlocalhost按照网上的说法&…

mysql中error 1786_mysql错误处理之ERROR1786(HY000)_MySQL

ERROR 1786 (HY000)【环境描述】msyql5.6.14【报错信息】执行create table ... select的时候遇到报错:db1 [test] [23:01:58]> create tablelgmnr_bak select * from lgmnr;ERROR 1786 (HY000): CREATE TABLE ... SELECTis forbidden when GLOBAL.ENFORCE_GTID_C…

深入mysql语言_MySQL对数据操作的一些深入语法

其他数据操作数据的操作也叫作crud:C:createR:readU:updateD:delete插入数据蠕虫复制就是在已有的数据的基础之上,将原来的数据进行复制,插入到相对应的表中!语法规则:in…

MySQL查询多表定义实体类_自己设计一个 JAVA + MyBatis 解析实体类多表通用查询

先来处理一下查询的字段和用到的表吧//虽然我们使用的时候是实体,但最终还是要解析成sql的,那么我们需要想好解析成sql 时候所用到的东东,提前准备好class TableEntity {String tableName; //表的真正名称肯定是要的String nickName; //表名的…

mysql table catalog_hibernate 注解@table( catalog=)作用

在阿里云RDS新建库和用户,并分配权限,而且用客户端访问连接成功。但启动应用,并修改连接用户和库地址,报错(信息如下)!字面意思是用户没有SELECT的权限,但客户端验证不是权限问题。经多步测试发现应用一直在…

mysql 导出数据库中的某张数据表_mysql 导出数据库中的某张数据表

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航,为用户…

pycharm 开发app_windows及mac下开发Excel, python+xlwings开发环境配置

背景:孩子他妈天天excel办公,看她每天大量重复性的工作,她是时候学习python来解放自己了,虽然我不用python ~ ~网络搜索 xlwings 是python下非常强大的处理Excel的库开发IDE选择Pycharm或者vs code配置开发环境,折腾了…

mysql 优化表_mysql里sql优化和表结构优化

开启慢查询日志 计入sqlshow variables like slow_query_log;//慢查询查看状态 OFF未开启 ON开启show variables like %log%;//没有使用索引的sql计入慢查询日志中set global log_queries_nor_using_indexes on;//开启log_queries_nor_using_indexes 为ON 记录未使用索引的查询…

sql server查询历史进程_学习笔记 | SequoiaDB SQL查询语句执行过程

本篇笔记将为大家介绍 SequoiaDB 巨杉数据库查询 SQL 语句的执行过程,以及查询语句执行过程中实例层、协调节点、编码节点、数据节点各自承担的功能。应用程序或用户想要从数据库查询需要的数据,首先通过 API 或 client 端连接数据库,将查询 …

服务器主机linux安装mysql_linux服务器上安装mysql

mysql版本:mysql-5.6.44-linux-glibc2.12-x86_64.tarlinux操作系统和版本信息:1、检查linux服务器上是否已安全mysql[rootlocalhost ~]# rpm -qa|grep -i mysql未安装则无任何信息返回,若已安装则会返回已安装的版本信息,可通过--…

mysql中rownum分页_Oracle数据库中rownum分页

测试人员在项目测试中发现查询结果列表分页的时候,有的数据在好几页中重复显示,有的则一次都不显示,经过分析sql,原来问题出在测试人员在项目测试中发现查询结果列表分页的时候,有的数据在好几页中重复显示&#xff0c…

python买东西_Python实战之ATM+购物车

学python一个月以来的第一个工程级别项目!!!!!1.首先分析项目需求:模拟实现一个ATM 购物商城程序额度 15000或自定义---->注册功能实现购物商城,买东西加入 购物车,调用信用卡接口结账----->购物车,支付可以提现,手续费5%----->提现…

multi source replication mysql_MySQL 5.7多源复制(Multi-Source Replication)

MySQL5.7.6以后开始支持多源复制Multi-Source Replication,可以将多个主的库同步到一台slave上,从而增加从的利用率,出节省了机器,也可用于备份。首先设置master_info_repository和relay_log_info_repository两个参数,这存储同步信…

列模式 文本编辑器_UltraEdit 24.2 文本编辑器免费版

UltraEdit是由IDM官方最新出品的文本编辑器版本,它是一款性价比全球一流的文本、十六进制,HTML、PHP、Java 和 JavaScript程序文本编辑器,被认为是世界上最好的文本编辑器。UltraEdit可以满足您的所有需求,例如代码突出显示&#…