目录
一、写在前面
(一)爬虫使用场景主要分以下几类:
-
通用爬虫
很多搜素引擎(如谷歌雅虎)抓取系统重要组成部分。抓取的是一整张页面数据
-
聚焦爬虫
是建立在通用爬虫的基础轴上。抓取的是页面中特定的局部内容
- 增量式爬虫
检测网站中数据更新的情况。只会爬取网站最新更新出来的数据
(二)数据解析的主要几个分类:
- 正则
- beautifulsoup
- xpath
原理概述:
数据解析就是获取网页后,对局部数据进行提取,爬虫的大部分需求是要求使用聚焦爬虫进行爬取的,所以数据解析很重要。
使用通用爬虫获取网页之后,在网页源码里面可以看到想要的数据在哪,比如文本常存在 li,图片常以 url 形式存在 image 标签或标签对应的属性中,此时对 url 发请求即可得到图片。建议先了解一下前端基础 html、css、js,不用专门学,看看相关文章就OK。
总结:解析的局部内容数据会存储在标签或标签的属性当中
二、步骤
数据解析
1.指定标签的定位
2.标签或对应属性中存储数据的提取(解析)
聚焦爬虫
1.指定URL
2.发起请求
3.获取响应数据
4.数据解析
5.持久化存储
没有学过正则,常用的正则和相关例子在网上看一下就大概懂了,爬虫用到的提取字符的需求可以用 re.findall() 函数
三、实例
获得逗逼拯救世界网站里的一个图片
复制图片地址在新页面中打开,可以得到该图片,意味着对该URL发请求,就可以请求到对应图片
import requests
url='http://image.dbbqb.com/202307211552/c49633c998e125fbc1de83b74ae75388/3x9Ez '
img_data=requests.get(url=url).content
with open('./ys.jpg','wb') as fp:
fp.write(img_data)
四、注
text 返回的响应数据是字符串形式,json 返回的是对象类型的数据,而图片对应的,应该用 content 返回二进制数据
with open中的 'wb' : write byte,写入二进制文件,写入时会覆盖文件,可用于下载与写入图片及视频