初识爬虫
爬虫,从本质上来说,就是利用程序在网上拿到对我们有价值的数据。
举例:熟悉的搜索引擎——百度和谷歌,它们的核心技术之一也是爬虫,而且是超级爬虫,更有机会发展人工智能。
明晰路径
浏览器的工作原理

1-当服务器将数据响应给浏览器后,需要将数据翻译成人人能看懂的语言,叫作解析数据
2-我们去挑选有用数据,叫做提取数据
3-然后存储数据
爬虫工作原理

最开始的【请求——响应】封装为一个步骤——获取数据。由此,我们得出,爬虫的工作分为四步:

第0步:获取数据。爬虫程序会根据我们提供的网址,向服务器发起请求,然后返回数据。
第1步:解析数据。爬虫程序会把服务器返回的数据解析成我们能读懂的格式。
第2步:提取数据。爬虫程序再从中提取出我们需要的数据。
第3步:储存数据。爬虫程序把这些有用的数据保存起来,便于你日后的使用和分析。
体验爬虫
requests.get()
import requests
#引入requests库
res = requests.get('https://localprod.pandateacher.com/python-manuscript/crawler-html/sanguo.md')
#发送请求,并把响应结果赋值在变量res上
Response对象的常用属性

res.status_code
import requests
res = requests.get('https://res.pandateacher.com/2018-12-18-10-43-07.png')
print(res.status_code)
#打印变量res的响应状态码,以检查请求是否成功

response.content
import requests
res = requests.get('https://res.pandateacher.com/2018-12-18-10-43-07.png')
#发出请求,并把返回的结果放在变量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('https://localprod.pandateacher.com/python-manuscript/crawler-html/sanguo.md')
#下载《三国演义》第一回,我们得到一个对象,它被命名为res
novel=res.text
#把Response对象的内容以字符串的形式返回
k = open('《三国演义》.txt','a+')
#创建一个名为《三国演义》的txt文档,指针放在文件末尾,追加内容
k.write(novel)
#写进文件中
k.close()
#关闭文档
response.encoding 有乱码派上用场
import requests
#引用requests库
res = requests.get('https://localprod.pandateacher.com/python-manuscript/crawler-html/sanguo.md')
#下载《三国演义》第一回,我们得到一个对象,它被命名为res
res.encoding='utf-8'
#定义Reponse对象的编码为utf-8。
novel=res.text
#把Response对象的内容以字符串的形式返回
print(novel[:800])
#打印小说的前800个字。

爬虫伦理
有所为,也要有所不为
网友评论