现在这个社会,每个人每天都会打开大量的网站,但是背后的原理却少有人懂。
打开网站这个动作,其实叫【网络请求】
过程:就是先发送请求,再由服务器返回相应,最后由浏览器渲染后呈现网页。
爬虫第一步:获取网页
requests库包含了很多帮助实现网络请求的函数
URL:统一资源定位符
即我们常说的网址/链接就是一个 URL 。
它其中包含了协议、主机域名和路径。通过这样一个链接我们就能在互联网上找到这个资源。
主机域名=服务器在网络上的位置
路径≈文件名·目录
http/https:协议
http 是一种从网络传输数据到本地浏览器的传送协议,一般也称为 http 协议。
https则是对数据进行加密的一种协议
一般来说,服务器返回给浏览器的响应内容,主要包含了响应状态码、响应头和响应体等信息。
响应头的信息现阶段用不到,重点来看响应状态码和响应体信息。
当服务器收到网络请求时,会返回一个三位数字的代码响应浏览器的请求,表示服务器对于这个请求的响应状态,我们称之为响应状态码。
# 仔细阅读完代码,点击运行即可。
import requests
# 发送请求,并把响应结果赋值在变量res上
res = requests.get('https://www.baidu.com/')进行网络请求
# 打印Response对象的status_code属性,即状态码
print(res.status_code)查阅状态码代码
# 导入requests库
import requests
# 发送请求,并把响应结果赋值在变量res上
res=requests.get('https://www.baidu.com/')
# 调用Response对象的text属性,获取响应内容
text=res.text获取响应的具体内容
# 将响应内容的编码格式设置为utf-8
res.encoding='utf-8'转换为中文编码<'utf-8'/'GBK'>
text=res.text
# 打印响应内容
print(text)
爬虫的伦理
弟子规》有云:“用人物,须明求,倘不问,即为偷”。
在互联网世界中,存在着一个 Robots 协议,全称网络爬虫排除标准(Robots exclusion protocol)。是网站开发者用来告知网络爬虫哪些页面可以抓取,哪些不行的协议。
Robots协议是互联网爬虫的一项公认的道德规范。
比如我们要查看闪光读书网站的 Robots 协议的话,就直接访问 https://wp.forchange.cn/robots.txt 查看就好了。
再例:https://www.taobao.com/robots.txt查看淘宝网的robots协议、
学会看robots协议
总结