Scrapy简介
Scrapy是Python开发的一个快速,高层次的屏幕抓取和Web抓取框架,用于抓取Web站点并从页面中提取结构化的数据。
实例
新建工程
这次我们来用爬虫获取豆瓣电影Top 250的电影信息吧。开始之前,我们新建一个Scrapy工程。
|
|
这些文件主要为:
items.py:定义需要获取的内容字段,类似于实体类。
pipelines.py:项目流水线文件,用来处理Spider抓取的数据。
settings.py:项目配置文件
spiders:放置spider的目录
定义项目(Item)
Item 是保存爬取到的数据的容器;其使用方法和python字典类似, 并且提供了额外保护机制来避免拼写错误导致的未定义字段错误。
|
|
编写爬虫(Spider)
Spider是整个项目中最核心的类,在这个类里我们会定义抓取对象(域名、URL)以及抓取规则。Scrapy官方文档中的教程是基于BaseSpider的,但BaseSpider只能爬取给定的URL列表,无法根据一个初始的URL向外拓展。不过除了BaseSpider,还有很多可以直接继承Spider的类,比如scrapy.contrib.spiders.CrawlSpider
。
在doubanmoive/spiders
目录下新建moive_spider.py
文件,并填写代码。
|
|
存储数据
爬虫获取到数据以后我们需要将其存储到数据库中,之前我们提到该操作需要靠项目管道(pipeline)来处理。
|
|
配置文件
在运行爬虫之前还需要将在settings.py中增加一些配置信息。
|
|
调试用的命令
- 运行
|
|
spidername由spider文件里的name属性定义。
- xpath调试
|
|
参考资料
[1] Scrapy抓取豆瓣电影
[2] Scrapy文档
进阶参考项目
好东西论坛,搜索关键词scrapy
。
[1] 用Python/Scrapy批量爬取网络图片
[2] Scrappy入门:百度贴吧图片爬虫
[3] python scrapy+Mongodb爬取蜻蜓FM,酷我及懒人听书
[4] python+ mysql存储二进制流的方式
[5] python下的自动化测试–selenium 验证码输入问题
[6] 分布式下的爬虫Scrapy应该如何做
[7] younghz的Scrapy原创精华教程系列
[8] Scrapy抓取Logdown博文相关数据
[9] 用 Python 做了一个豆瓣用户读书短评下载工具
[10] python网络爬虫模拟登录爬取绩点(使用requests库)
[11] Python利用Phantomjs抓取渲染JS后的网页
[12] 原生代码的网页抓取
[13] Pyton 网页正文及内容图片提取算法
[15] 稀土掘金:Python 爬虫的工具列表
[16] scrapy抓取天猫重定向(302)问题