Python爬虫基础讲解之请求


Posted in Python onMay 13, 2021

一、请求目标(URL)

URL又叫作统一资源定位符,是用于完整地描述Internet上网页和其他资源的地址的一种方法。类似于windows的文件路径。

Python爬虫基础讲解之请求

二、网址的组成:

1.http://:这个是协议,也就是HTTP超文本传输协议,也就是网页在网上传输的协议。

2.mail:这个是服务器名,代表着是一个邮箱服务器,所以是mail。

3.163.com:这个是域名,是用来定位网站的独一无二的名字。

4.mail.163.com:这个是网站名,由服务器名+域名组成。

5./:这个是根目录,也就是说,通过网站名找到服务器,然后在服务器存放网页的根目录。

6.index.html:这个是根目录下的网页。

7.http://mail.163.com/index.html:这个叫做URL,统一资源定位符,全球性地址,用于定位网上的资源。

三、请求体(response)

就像打电话一样,HTTP到底和服务器说了什么,才能让服务器返回正确的消息的,其实客户端的请求告诉了服务器这些内容:请求行、请求头部、空行、请求数据

Python爬虫基础讲解之请求

四、请求方法(Method)

HTTP请求可以使用多种请求方法,但是爬虫最主要就两种方法:GETPOST方法。

get请求:一般情况下,只从服务器获取数据下来,并不会对服务器资源产生任何影响的时候会使用get请求。

post请求:向服务器发送数据(登录)、上传文件等,会对服务器资源产生影响的时候会使用
post请求。

以上是在网站开发中常用的两种方法。并且一般情况下都会遵循使用的原则。但是有的网站和服务器为了做反爬虫机制,也经常会不按常理出牌,有可能一个应该使用get方法的请求就一定要改成post请求,这个要视情况而定。

GET与POST方法的区别:

1.GET是从服务器上获取数据,POST是向服务器传送数据

2.GET请求参数都显示在浏览器网址上,即Get"请求的参数是URL的一部分。例如: http://www.baidu.com/s?wd=Chinese

3.POST请求参数在请求体当中,消息长度没有限制而且以隐式的方式进行发送,通常用来向HTTP服务器提交量比较大的数据。请求的参数类型包含在"Content-Type"消息头里,指明发送请求时要提交的数据格式。

注意:

网站制作者一般不会使用Get方式提交表单,因为有可能会导致安全问题。比如说在登陆表单中用Get方式,用户输入的用户名和密码将在地址栏中暴露无遗。并且浏览器会记录历史信息,导致账号不安全的因素存在。

五、常用的请求报头

请求头描述了客户端向服务器发送请求时所使用的编码,以及发送内容的长度,告诉服务器自己有没有登陆,采用的什么浏览器访问的等等。

1.Accept:浏览器告诉服务器自己接受什么数据类型,文字,图片等。

2.Accept-charset:浏览器申明自己接收的字符集。

3.Accept-Encoding:浏览器申明自己接收的编码方法,通常指定压缩方法,是否支持压缩,支持什么压缩方法(gzip, deflate,br)。

4.Accept-Language:浏览器申明自己接收的语言。

5.Authorization:授权信息,通常出现在对服务器发送的WWW-Authenticate头的应答中。

6.content-Length表示请求消息正文的长度。

7.origin:声明请求资源的起始位置

8.connection:处理完这次请求后,是断开连接还是继续保持连接。9.Cookie:发送给WEB服务器的Cookie内容,经常用来判断是否登陆了。

9.Cookie:发送给WEB服务器的Cookie内容,经常用来判断是否登陆了。

10.Host:客户端指定自己想访问的WEB服务器的域名/IP地址和端口号。

11.If-Modified-since:客户机通过这个头告诉服务器,资源的缓存时间。只有当所请求的内容在指定的时间后又经过修改才返回它,否则返回304"Not Modified"应答。

12.Pragma:指定"no-cache"值表示服务器必须返回一个刷新后的文档,即使它是代理服务器而且已经有了页面的本地拷贝。

13.Referer:告诉服务器该页面从哪个页面链接的。

14.From∶请求发送者的email地址,由一些特殊的Web客户程序使用,浏览器不会用到它。

15.(user-Agent:浏览器表明自己的身份(是哪种浏览器)

16.upgrade-insecure-requests∶申明浏览器支持从http请求自动升级为https请求,并且在以后发送请求的时候都使用https。

UA-Pixels,uA-Color,uA-oS,UA-CPU:由某些版本的IE浏览器所发送的非标准的请求头,表示屏幕大小、颜色深度、操作系统和CPu类型。

六、requests模块查看请求体

在我们用requests模块请求数据的时候携带上诉请求报头的字段信息,将我们的爬虫代码进行伪装。同样的伪装之后我们也可以通过代码查看请求体的字段信息,有如下几种常见的属性:

#查看请求体中的url地址
response.request.url
#查看请求体中的请求头信息
response.request.headers
#查看请求体中的请求方法
response.request.method

到此这篇关于Python爬虫基础讲解之请求的文章就介绍到这了,更多相关Python请求内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python中使用item()方法遍历字典的例子
Aug 26 Python
跟老齐学Python之用Python计算
Sep 12 Python
python类继承用法实例分析
Oct 10 Python
Python实现测试磁盘性能的方法
Mar 12 Python
python MysqlDb模块安装及其使用详解
Feb 23 Python
Python装饰器模式定义与用法分析
Aug 06 Python
python opencv 读取本地视频文件 修改ffmpeg的方法
Jan 26 Python
TensorFlow实现checkpoint文件转换为pb文件
Feb 10 Python
Python通过文本和图片生成词云图
May 21 Python
详解Django自定义图片和文件上传路径(upload_to)的2种方式
Dec 01 Python
据Python爬虫不靠谱预测可知今年双十一销售额将超过6000亿元
Nov 11 Python
总结三种用 Python 作为小程序后端的方式
May 02 Python
自己搭建resnet18网络并加载torchvision自带权重的操作
May 13 #Python
如何使用flask将模型部署为服务
May 13 #Python
教你用python控制安卓手机
Python数据分析入门之数据读取与存储
May 13 #Python
python执行js代码的方法
pytorch加载预训练模型与自己模型不匹配的解决方案
May 13 #Python
Python数据分析入门之教你怎么搭建环境
You might like
C/S和B/S两种架构区别与优缺点分析
2014/10/23 PHP
PHP抽象类与接口的区别实例详解
2019/05/09 PHP
Js 获取HTML DOM节点元素的方法小结
2009/04/24 Javascript
ExtJS 2.2.1的grid控件在ie6中的显示问题
2009/05/04 Javascript
了解Javascript的模块化开发
2015/03/02 Javascript
javascript中hasOwnProperty() 方法使用指南
2015/03/09 Javascript
再谈Javascript中的基本类型和引用类型(推荐)
2016/07/01 Javascript
JavaScript基础——使用Canvas绘图
2016/11/02 Javascript
Angular2学习笔记——详解路由器模型(Router)
2016/12/02 Javascript
AngularJS中使用three.js的实例详解
2017/07/21 Javascript
Js中async/await的执行顺序详解
2017/09/22 Javascript
详解使用React全家桶搭建一个后台管理系统
2017/11/04 Javascript
微信小程序实现搜索历史功能
2020/03/26 Javascript
jQuery提示框插件SweetAlert用法分析
2019/08/05 jQuery
[05:13]2018DOTA2亚洲邀请赛主赛事第二日战况回顾 LGD、VG双雄携手晋级
2018/04/05 DOTA
[09:34]2018DOTA2国际邀请赛寻真——永不放弃的iG
2018/08/14 DOTA
[44:40]KG vs LGD 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python sqlobject(mysql)中文乱码解决方法
2008/11/14 Python
100行Python代码实现自动抢火车票(附源码)
2018/01/11 Python
Django管理员账号和密码忘记的完美解决方法
2018/12/06 Python
python合并已经存在的sheet数据到新sheet的方法
2018/12/11 Python
Django给admin添加Action的步骤详解
2019/05/01 Python
对Python 简单串口收发GUI界面的实例详解
2019/06/12 Python
Python基于DB-API操作MySQL数据库过程解析
2020/04/23 Python
HTML5到底会有什么发展?HTML5的前景展望
2015/07/07 HTML / CSS
static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
2015/02/22 面试题
兴趣小组活动总结
2014/05/05 职场文书
高三毕业典礼演讲稿
2014/05/13 职场文书
建筑横幅标语
2014/10/09 职场文书
2014年行政部工作总结
2014/11/19 职场文书
2014年化验室工作总结
2014/11/21 职场文书
初中信息技术教学计划
2015/01/22 职场文书
HTML中table表格拆分合并(colspan、rowspan)
2021/04/07 HTML / CSS
OpenCV-Python直方图均衡化实现图像去雾
2021/06/07 Python
python scrapy简单模拟登录的代码分析
2021/07/21 Python
Golang jwt身份认证
2022/04/20 Golang