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应用程序在windows下不出现cmd窗口的办法
May 29 Python
wxpython 最小化到托盘与欢迎图片的实现方法
Jun 09 Python
Django中ORM表的创建和增删改查方法示例
Nov 15 Python
selenium+python自动化测试之鼠标和键盘事件
Jan 23 Python
Python3.5迭代器与生成器用法实例分析
Apr 30 Python
详解python运行三种方式
May 13 Python
详解Python列表赋值复制深拷贝及5种浅拷贝
May 15 Python
python 机器学习之支持向量机非线性回归SVR模型
Jun 26 Python
详解python实现数据归一化处理的方式:(0,1)标准化
Jul 17 Python
windows下Pycharm安装opencv的多种方法
Mar 05 Python
python开发入门——set的使用
Sep 03 Python
Python实现socket库网络通信套接字
Jun 04 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
php对二维数组按指定键值key排序示例代码
2013/11/26 PHP
PHP清除字符串中所有无用标签的方法
2014/12/01 PHP
php加密之discuz内容经典加密方式实例详解
2017/02/04 PHP
yii2简单使用less代替css示例
2017/03/10 PHP
js或css实现滚动广告的几种方案
2010/01/28 Javascript
jQuery下通过replace字符串替换实现大小图片切换
2012/05/22 Javascript
jQuery拖拽div实现思路
2014/02/19 Javascript
Javascript中的delete操作符详细介绍
2014/06/06 Javascript
yui3的AOP(面向切面编程)和OOP(面向对象编程)
2015/05/01 Javascript
jquery+ajax实现直接提交表单实例分析
2016/06/17 Javascript
JS图片等比例缩放方法完整示例
2016/08/03 Javascript
js实现无缝滚动图(可控制当前滚动的方向)
2017/02/22 Javascript
JS正则验证多个邮箱完整实例【邮箱用分号隔开】
2017/04/19 Javascript
详解用vue.js和laravel实现微信授权登陆
2017/06/23 Javascript
JavaScript查看代码运行效率console.time()与console.timeEnd()用法
2019/01/18 Javascript
从零到一详聊创建Vue工程及遇到的常见问题
2019/04/25 Javascript
js实现整体缩放页面适配移动端
2020/03/31 Javascript
[02:21]十步杀一人,千里不留行——DOTA2全新英雄天涯墨客展示
2018/08/29 DOTA
python简单实例训练(21~30)
2017/11/15 Python
python素数筛选法浅析
2018/03/19 Python
Python使用pip安装pySerial串口通讯模块
2018/04/20 Python
python使用代理ip访问网站的实例
2018/05/07 Python
Python检查ping终端的方法
2019/01/26 Python
Python-jenkins 获取job构建信息方式
2020/05/12 Python
pyqt5 textEdit、lineEdit操作的示例代码
2020/08/12 Python
波兰香水和化妆品购物网站:Notino.pl
2017/11/07 全球购物
GUESS Factory加拿大:牛仔裤、服装及配饰
2019/09/20 全球购物
Linux内核产生并发的原因
2012/07/13 面试题
资产经营总监岗位职责
2013/12/04 职场文书
管理心得体会
2013/12/28 职场文书
森林防火工作方案
2014/02/14 职场文书
中学教师师德师风演讲稿
2014/08/22 职场文书
暑假安全教育广播稿
2014/09/10 职场文书
通过shell脚本对mysql的增删改查及my.cnf的配置
2021/07/07 MySQL
Win10 Anaconda安装python-pcl
2022/04/29 Servers
spring IOC容器的Bean管理XML自动装配过程
2022/05/30 Java/Android