上一章已经了解python爬虫的基本知识,这一次让我们一起来学会如何使用python请求库爬取目标网站的信息。当然这次爬虫之旅相信我能给你带来不一样的体验。
目录
一、安装requests 库
简介
安装
步骤
1.requests的基本使用3步骤
2.查看所使用编码
3.设置编码
二、认识requests请求方法
GET请求
简介
基本语法
POST请求
简介
基本语法
库是一个Python HTTP客户端库,使得发送HTTP请求变得简单。
库提供了一种简洁直观的API,用于发送各种HTTP请求,如GET、POST、PUT、DELETE等,并处理返回的响应。
使用库,开发者可以轻松地添加头部信息、发送表单数据、上传文件、处理Cookies、使用代理等。它还支持SSL证书验证、连接超时设置、会话对象复用等高级功能。
库的设计哲学是“HTTP for Humans”(人类的HTTP),意味着它的API设计尽量符合人类的直觉,让HTTP请求变得像喝水一样自然。
安装命令:pip install requests
注意你需要在安装python虚拟环境下执行,没有python虚拟环境安装命令会报错,当然你也可以使用其他软件来执行,比如pycham、vscode等都可以(前提是你要配置好python环境才能正常运行)
response 常见属性
但是作者发现输出的结果包含了一些特殊的字符,如和,这些字符实际上是UTF-8编码的中文字符,由于在命令提示符中没有正确显示,所以看起来像是乱码。
如果要想知道自已所使用的是什么编码,直接添加如下
输出结果如下:
就可以看到圈红色的就是所使用的编码ISO-8859-1
小提示:
ISO-8859-1,也称为Latin-1,是一种单字节字符集编码,它是为了表示西欧语言中的大部分字符而设计的。这种编码标准是国际标准化组织(ISO)在1987年制定的,它是ISO 8859系列字符集编码中的第一个成员。
ISO-8859-1编码可以表示256个不同的字符,包括英文字母(大写和小写)、数字、标点符号以及一些特殊符号。此外,它还包括西欧语言中的特殊字符,如法语的ç、é、è、ê、ë,德语的ä、ö、ü,以及西班牙语的ñ等。
在计算机和网络技术中,ISO-8859-1曾经被广泛用作默认的字符编码,特别是在早期的互联网和电子邮件系统中。然而,随着多语言互联网内容的增长,这种编码逐渐被更通用的Unicode编码(如UTF-8)所取代,因为Unicode能够表示世界上大多数语言的字符,而ISO-8859-1仅限于西欧语言。
在HTML文档中,可以通过标签来指定使用ISO-8859-1字符集。在HTTP头部信息中,也可以通过字段来指定字符编码,例如:。
要想把我们的所获取的乱码变为中文字符,只需要设置编码为UTF-8即可,代码如下
输出结果:
上图结果可知乱码变为中文,是不很简单啊,哈哈。
除了设置编码,还有其他使用技巧,比如代码如下
这两个代码可以单独使用或者组合使用,全看个人使用意愿,但最终目的是把不认识的字转换为我们能认识的字就可以了。
这次我们来认识以下requests请求库的主要七个方法,如下:
requsts.requst() - > 构造一个请求,最基本的方法,是下面方法的支撑
requsts.get() - >获取网页,对应HTTP中的GET方法
requsts.post() - > 向网页提交信息,对应HTTP中的POST方法
requsts.head() - > 获取html网页的头信息,对应HTTP中的HEAD方法
requsts.put() - > 向html提交put方法,对应HTTP中的PUT方法
requsts.patch() - > 向html网页提交局部请求修改的的请求,对应HTTP中的PATCH方法
requsts.delete() - > 向html提交删除请求,对应HTTP中的DELETE方法
这次我们来简单的学会如何使用get方法和post方法
提示
r : 是一个Response对象,一个包含服务器资源的对象
get(url) : 是一个Request对象,构造一个向服务器请求资源的Request。
上述代码是先导入请求库,然后构建简单的get请求方法,设置请求目标网址,最后输出响应信息的一个简单流程。
输出结果
可以看到我们成功发送get请求,返回结果包含有请求头,URL,IP等信息。
下面我们来解释代码各行意思,相信你会了解代码的意图
根据上述简单的案例我想我们能够写出一个简单get请求方法,并且能读懂代码的意思,接下来我们在深入一下怎么使用带参数的get请求和传递参数
带参数的GET请求的格式
对于GET的请求如果我们想要添加多余的信息,一般需要在URL后面拼接,用一个【 ?】分割,参数传递过来后再用【 & 】的符号分割即可。例如我想要添加两个参数,其中name是China,age是5000,然后来构造这个请求连接,那这样的话就可以写为
0k,这行代码我们构造完毕,接下来我们再使用params这个用来传递参数,方便我们添加代码,一目了然。
提醒:构造好的代码理论上可以直接执行,但是一般情况下,此信息数据会用字典来存储。
代码如下:
输出结果:
好了上述代码我们已经学会如何使用GET请求,也学会了如何构造参数请求的方式和传递参数。
注意哈,post方法用于提交数据,跟get方法不同
输出结果
提示:作为变量名代表“response”的缩写,这是一个广泛接受的做法,用于表示HTTP请求的响应对象。当然,您也可以使用其他变量名,如、
POST请求的语法格式通常遵循以下结构:
这个post请求参数的语法格式我们一般不需要太重视(按实际需要),因为这是基于HTTP协议的原始请求格式,无需手动构造请求函数,高级的HTTP客户端库(如Python的库)会帮助我们处理这些细节。
好了,今日分享到此一游,通过这次学习我们可以学会如何通过安装和使用requests请求库以及能够编写基本的请求函数代码,同时也能够认识post和get两个不同的请求方法
本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕,E-mail:xinmeigg88@163.com
本文链接:http://www.ksxb.net/tnews/5084.html