Python爬虫笔记 | 初识爬虫技术

使用python版本:3.7.0 64-bit

爬虫,从本质上来说,就是利用程序在网上拿到对我们有价值的数据。

爬虫的工作原理四步骤

第1步: 获取数据。 爬虫程序会根据我们提供的网址,向服务器发起请求,然后返回数据。
第2步: 解析数据。 爬虫程序会把服务器返回的数据解析成我们能读懂的格式。
第3步: 提取数据。 爬虫程序再从中提取出我们需要的数据。
第4步: 储存数据。 爬虫程序把这些有用的数据保存起来,便于你日后的使用和分析。

获取数据:requests库

requests库的安装见博客:https://blog.csdn.net/Microgoblins/article/details/102672982

requests库可以帮我们下载网页源代码、文本、图片,甚至是音频。其实,“下载”本质上是向服务器发送请求并得到响应。

发送请求:对应http的不同请求类型,requests库有不同的方法:

1.requests.get(): 获取HTML网页的主要方法,对应于HTTP的GET

具体用法如下:

import requests
#引入requests库
res = requests.get('URL')
#requests.get是在调用requests库中的get()方法,它向服务器发送了一个请求,括号里的参数是你需要的数据所在的网址,然后服务器对请求作出了响应。
#我们把这个响应返回的结果赋值在变量res上。

2.requests.post(): 向HTML网页提交POST请求的方法,对应于HTTP的POST

3.requests.head(): 获取HTML网页头信息的方法,对应于HTTP的HEAD

4.requests.put(): 向HTML网页提交PUT请求,对应于HTTP的PUT

5.requests.patch(): 向HTML网页提交局部修改请求,对应于HTTP的PATCH

6.requests.delete(): 向HTML页面提交删除请求,对应于HTTP的DELETE

响应内容:当我们用上述方法向HTML页面发送请求后,会获得一个Response对象

import requests
res = requests.get('URL')

res是一个对象,属于 requests.models.Response 类。

Response对象的常用属性

属性 作用
response.status_code 检查请求是否成功:200表示连接成功,403表示禁止访问
response.content 把Response对象转换为二进制数据
response.text 把Response对象转换为字符串数据
response.encoding 定义Response对象的编码:遇上文本的乱码问题,才考虑用

response.status_code用法:

import requests 
res = requests.get('URL') 
print(res.status_code)
#打印变量res的响应状态码,以检查请求是否成功

response.content用法:

import requests
res = requests.get('URL')
#发出请求,并把返回的结果放在变量res中
pic=res.content
#把Reponse对象的内容以二进制数据的形式返回
photo = open('ppt.jpg','wb')
#新建了一个文件ppt.jpg,这里的文件没加路径,它会被保存在程序运行的当前目录下。
#图片内容需要以二进制wb读写。你在学习open()函数时接触过它。
photo.write(pic) 
#获取pic的二进制内容
photo.close()
#关闭文件

response.text用法:

import requests
#引用requests库
res = requests.get('URL')
#假设下载小说内容,我们得到一个对象,它被命名为res
novel=res.text
#把Response对象的内容以字符串的形式返回
k = open('小说.txt','a+')
#创建一个名为小说的txt文档,指针放在文件末尾,追加内容
k.write(novel)
#写进文件中     
k.close()
#关闭文档

response.encoding用法:

import requests
#引用requests库
res = requests.get('URL')
#假设下载小说内容,我们得到一个对象,它被命名为res
res.encoding='gbk'
#定义Response对象的编码为gbk
novel=res.text
#把Response对象的内容以字符串的形式返回
print(novel[:800])
#打印小说的前800个字

爬虫应当遵守的伦理原则

首先应当遵循:Robots协议

Robots协议是互联网爬虫的一项公认的道德规范,它的全称是“网络爬虫排除标准”(Robots exclusion protocol),这个协议用来告诉爬虫,哪些页面是可以抓取的,哪些不可以。

在网站的域名后加上 /robots.txt 就可以查看网站的robots协议。

爬虫就像是核技术,人们可以利用它去做有用的事,也能利用它去搞破坏。

恶意消耗别人的服务器资源,是一件不道德的事,恶意爬取一些不被允许的数据,还可能会引起严重的法律后果。

工具在你手中,如何利用它是你的选择。当你在爬取网站数据的时候,别忘了先看看网站的Robots协议是否允许你去爬取。

同时,限制好爬虫的速度,对提供数据的服务器心存感谢,避免给它造成太大压力,维持良好的互联网秩序,也是我们该做的事。

你可能感兴趣的:(Python爬虫笔记)