一、爬虫的基本概念

爬虫:一只在网络上爬行的“蜘蛛”,这只蜘蛛用来在网络上爬取我们想获取的信息,所以爬虫的定义大概是:

请求网站并提取数据的自动化程序。

从定义中可以看出,我们首先要做的是向网站发送请求,模拟浏览器浏览网页的模式,从而获取数据,此时获取的数据其实是html代码文本以及图片等,接下来就是筛选我们需要的数据,梳理好我们需要的数据之后,就是要分类,按需存储我们的想要的数据,这就是一只爬虫的自我修养。

二、 网页的基本元素

我们用随意打开一个网页,右击打开源代码,这就是网站的html文本,这就包含了该网页所有的信息,我们就需要在这些数据中筛选出我们需要的数据,如下:

这里写图片描述
这里写图片描述

这里写图片描述
这里写图片描述

三、爬虫的基本流程

1、发起请求

通过HTTP库向目标站点发情请求,即发送一个Request,请求可以包含额外的header等,等待服务器响应;

2、获取响应内容

HTTP服务器会回应请求的结果,即页面内容,可能包含html文本,json,图片等;

3、解析内容

根据获取的内容不同进行响应解析;

4、保存内容

将解析好的内容按需分类存储下来,比如图片视频,数据文本等;

四、Request & Response

这里写图片描述
这里写图片描述

Request

这里写图片描述
这里写图片描述

Response

这里写图片描述
这里写图片描述

五、能够爬取的内容

1、网页文本: html,json文本等
2、图片视频等二进制文件
3、所有能请求到的数据按道理都能爬取到

六、解析方式

这里写图片描述
这里写图片描述

七、试着爬点什么?

这里写图片描述
我们就把这个头像抓取下来吧。

1
2
3
4
5
6
7
8
9
10
11
12
import requests

response = requests.get("http://amuuncle.site/")
print(response.text)
print(response.headers)
print(response.status_code)

response = requests.get("http://amuuncle.site/images/touxiang.jpg")
print(response.content)
file_object = open('touxiang.jpg', 'wb')
file_object.write(response.content)
file_object.close()

上面代码,第一请求可以获取站点的应答信息,通过梳理我们可以筛选出我们要抓取的头像地址(该例子未做自动筛选数据,这些我们之后来学习,现在只是看看基本逻辑),第二个请求图片地址,并且将获取的图片二进制数据写入到路径中,最后头像就被保存在脚本的相同路径下了;

项目源码可以访问我的码云

>>>我的私人博客<<<