爬虫的工作分为四步:
1.获取数据。爬虫程序会根据我们提供的网址,向服务器发起请求,然后返回数据。
2.解析数据。爬虫程序会把服务器返回的数据解析成我们能读懂的格式。
3.提取数据。爬虫程序再从中提取出我们需要的数据。
4.储存数据。爬虫程序把这些有用的数据保存起来,便于你日后的使用和分析。
这一篇的内容就是:获取数据。
首先,我们将会利用一个强大的库——requests来获取数据。
在电脑上安装的方法是:Mac电脑里打开终端软件(terminal),输入pip3 install requests,然后点击enter即可;Windows电脑里叫命令提示符(cmd),输入pip install requests 即可。
(requests库可以帮我们下载网页源代码、文本、图片,甚至是音频。“下载”本质上是向服务器发送请求并得到响应。
Pip是一个Python的包管理工具。)
先来看**requests.get()**方法
requests.get()的具体用法如下:
import requests
#引入requests库
res = requests.get('URL')
#requests.get是在调用requests库中的get()方法,它向服务器发送了一个请求,括号里的参数是你需要的数据所在的网址,然后服务器对请求作出了响应。
#我们把这个响应返回的结果赋值在变量res上。
print(type(res))
#打印变量res的数据类型
Response对象常用的四个属性:
1. res.status_code
检查请求是否成功
print(res.status_code)
#打印变量res的响应状态码,以检查请求是否成功
响应状态码 | 说明 | 举例 | 说明 |
---|---|---|---|
1xx | 请求收到 | 100 | 继续提出请求 |
2xx | 请求成功 | 200 | 成功 |
3xx | 重定向 | 305 | 应使用代理访问 |
4xx | 客户端错误 | 403 | 禁止访问 |
5xx | 服务器端错误 | 503 | 服务不可用 |
2.res.content
能把Response对象的内容以二进制数据的形式返回,适用于图片、音频、视频的下载
3.res.text
可以把Response对象的内容以字符串的形式返回,适用于文字、网页源代码的下载
4.res.encoding
能帮我们定义Response对象的编码
(遇上文本的乱码问题,才考虑用res.encoding)
小结:
获取数据,本质就是通过URL去向服务器发出请求,服务器再把相关内容封装成一个Response对象返回给我们,这是通过requests.get()实现的,而获取到的Response对象下有四个以上常用的属性。
爬虫协议:
Robots协议是互联网爬虫的一项公认的道德规范,它的全称是“网络爬虫排除标准”(Robots exclusion protocol),这个协议用来告诉爬虫,哪些页面是可以抓取的,哪些不可以。
如何查看网站的robots协议呢?在网站的域名后加上/robots.txt就可以了。