Scrapy笔记08- 文件与图片
Scrapy为我们提供了可重用的item pipelines为某个特定的Item去下载文件。 通常来说你会选择使用Files Pipeline或Images Pipeline。
这两个管道都实现了:
- 避免重复下载
- 可以指定下载后保存的地方(文件系统目录中,Amazon S3中)
Images Pipeline为处理图片提供了额外的功能:
Scrapy为我们提供了可重用的item pipelines为某个特定的Item去下载文件。 通常来说你会选择使用Files Pipeline或Images Pipeline。
这两个管道都实现了:
Images Pipeline为处理图片提供了额外的功能:
Scrapy使用Python内置的的日志系统来记录事件日志。
日志配置
| |
使用也很简单
当一个item被蜘蛛爬取到之后会被发送给Item Pipeline,然后多个组件按照顺序处理这个item。 每个Item Pipeline组件其实就是一个实现了一个简单方法的Python类。他们接受一个item并在上面执行逻辑, 还能决定这个item到底是否还要继续往下传输,如果不要了就直接丢弃。
Item是保存结构数据的地方,Scrapy可以将解析结果以字典形式返回,但是Python中字典缺少结构,在大型爬虫系统中很不方便。
Item提供了类字典的API,并且可以很方便的声明字段,很多Scrapy组件可以利用Item的其他信息。
在你爬取网页的时候,最普遍的事情就是在页面源码中提取需要的数据,我们有几个库可以帮你完成这个任务:
而Scrapy实现了自己的数据提取机制,它们被称为选择器,通过XPath 或CSS表达式在HTML文档中来选择特定的部分
Spider是爬虫框架的核心,爬取流程如下:
start_urls指定,调用start_requests()
产生Request对象,然后注册parse方法作为回调Item对象,Request对象或它们的迭代对象。Request
对象还会包含回调函数,之后Scrapy下载完后会被这里注册的回调函数处理。尽管这个流程适合于所有的蜘蛛,但是Scrapy里面为不同的使用目的实现了一些常见的Spider。下面我们把它们列出来。