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修改操作系统时间的方法
May 18 Python
python使用PyGame模块播放声音的方法
May 20 Python
Python实现多线程抓取妹子图
Aug 08 Python
Python函数中*args和**kwargs来传递变长参数的用法
Jan 26 Python
python方法生成txt标签文件的实例代码
May 10 Python
python采集百度搜索结果带有特定URL的链接代码实例
Aug 30 Python
大家都说好用的Python命令行库click的使用
Nov 07 Python
Python使用Pandas读写Excel实例解析
Nov 19 Python
selenium+python实现自动登陆QQ邮箱并发送邮件功能
Dec 13 Python
Python3列表List入门知识附实例
Feb 09 Python
django 数据库返回queryset实现封装为字典
May 19 Python
Django DRF APIView源码运行流程详解
Aug 17 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
各种咖啡的英文名子是什么
2021/03/03 新手入门
php 学习资料零碎东西
2010/12/04 PHP
PHP不用递归实现无限分级的例子分享
2014/04/18 PHP
ThinkPHP令牌验证实例
2014/06/18 PHP
php中将一段数据存到一个txt文件中并显示其内容
2014/08/15 PHP
thinkPHP模板中函数的使用方法示例
2016/11/30 PHP
PHP进阶学习之垃圾回收机制详解
2019/06/18 PHP
js 浮动层菜单收藏
2009/01/16 Javascript
基于jQuery的公告无限循环滚动实现代码
2012/05/11 Javascript
Windows系统下使用Sublime搭建nodejs环境
2015/04/13 NodeJs
基于jquery实现select选择框内容左右移动添加删除代码分享
2015/08/25 Javascript
JS实现的最简Table选项卡效果
2015/10/14 Javascript
JS中多步骤多分步的StepJump组件实例详解
2016/04/01 Javascript
如何利用Promises编写更优雅的JavaScript代码
2016/05/17 Javascript
JS扩展类,克隆对象与混合类实例分析
2016/11/26 Javascript
想用好React的你必须要知道的一些事情
2017/07/24 Javascript
用js屏蔽被http劫持的浮动广告实现方法
2017/08/10 Javascript
微信小程序 获取javascript 里的数据
2017/08/17 Javascript
解决vue接口数据赋值给data没有反应的问题
2018/08/27 Javascript
JS实现马赛克图片效果完整示例
2019/04/13 Javascript
Vue父子之间值传递的实例教程
2020/07/02 Javascript
Node.js 中如何收集和解析命令行参数
2021/01/08 Javascript
[00:20]DOTA2荣耀之路7:-ah fu-抢盾
2018/05/31 DOTA
Python中str is not callable问题详解及解决办法
2017/02/10 Python
python学生管理系统学习笔记
2019/03/19 Python
Python如何使用BeautifulSoup爬取网页信息
2019/11/26 Python
关于Numpy数据类型对象(dtype)使用详解
2019/11/27 Python
python3 图片 4通道转成3通道 1通道转成3通道 图片压缩实例
2019/12/03 Python
is_file和file_exists效率比较
2021/03/14 PHP
html5+css3之动画在webapp中的应用
2014/11/21 HTML / CSS
后勤人员岗位职责
2013/12/17 职场文书
我们的节日清明节活动方案
2014/03/05 职场文书
群众路线个人整改措施
2014/10/24 职场文书
会议通知范文
2015/04/15 职场文书
晚会开幕词范文
2016/03/04 职场文书
Go语言实现一个简单的并发聊天室的项目实战
2022/03/18 Golang