python爬虫
对pyhton爬虫理解
网络爬虫:爬取网页前端的数据并且提取其中需要的保存起来
前端爬取requests库
1.获取response对象
import requests #导入requests
res = requests.get(url) #获取url的前端数据,url一定要全网址不能省略http://或者https://
2.网络状态码
res.status_code #200表示成功
是用以表示网页服务器超文本传输协议响应状态的3位数字代码。
状态码 | 含义 |
---|---|
1XX系列 | 指定客户端应相应的某些动作,代表请求已被接受,需要继续处理。由于 HTTP/1.0 协议中没有定义任何 1xx 状态码,所以除非在某些试验条件下,服务器禁止向此类客户端发送 1xx 响应。 |
2XX系列 | 代表请求已成功被服务器接收、理解、并接受。这系列中最常见的有200、201状态码。 |
3XX系列 | 代表需要客户端采取进一步的操作才能完成请求,这些状态码用来重定向,后续的请求地址(重定向目标)在本次响应的 Location 域中指明。这系列中最常见的有301、302状态码。 |
4XX系列 | 表示请求错误。代表了客户端看起来可能发生了错误,妨碍了服务器的处理。常见有:401、404状态码。 |
5XX系列 | 代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。常见有500、503状态码。 |
3.编码方式
res.encoding #编码方式
res.apparent_encoding #匹配出来的编码方式,一般很准
编码方式这块一般中文编码有UTF-8 UTF-16 GBK GB2312 GB18030(不分大小写)
常用的是UTF-8 GB2312
python和linux默认是UTF-8 windows默认GB2312
4.二进制流输出和编码输出
res.content #二进制流
res.text #编码输出
编码输出的数据格式是str一般用来保存一些文本,而二进制流输出是用来保存视频、图片等
5.数据的保存
f = open('myFirst.txt', 'w') #构建文件对象FileName文件名,Mode是模式
f.write(res.text) #DocumentContent文件内容
f.close() #关闭文件
以上就是爬虫的第一步了,仅仅爬取前端未渲染的页面,后续我们需要在这里提取我们要的,请看我的下一章爬虫
Mode | 描述 |
---|---|
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。 |
w | 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
w+ | 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |