概要设计思路(https://github.com/Wooden-Robot/scrapy-tutorial):
声明item:Items
(爬取的主要目标就是从非结构性的数据源提取结构性数据,例如网页。 Scrapy spider可以以python的dict来返回提取的数据.虽然dict很方便,并且用起来也熟悉,但是其缺少结构性,容易打错字段的名字或者返回不一致的数据,尤其在具有多个spider的大项目中。
为了定义常用的输出数据,Scrapy提供了 Item 类。 Item 对象是种简单的容器,保存了爬取到得数据。 其提供了 类似于词典(dictionary-like) 的API以及用于声明可用字段的简单语法。)
Spider
(class scrapy.spider.Spider
Spider是最简单的spider。每个其他的spider必须继承自该类(包括Scrapy自带的其他spider以及您自己编写的spider)。 Spider并没有提供什么特殊的功能。 其仅仅请求给定的 start_urls/start_requests ,并根据返回的结果(resulting responses)调用spider的 parse 方法。)
使用xpath语法来提取我们所需的信息(可以在W3Schlool上参考)
点击工具栏左上角的类鼠标符号图标或者Ctrl + Shift + c在页面中点击我们想要的元素即可在工具栏中看到它在网页HTML源码中所处的位置。
大致内容:
表的设计
获取每一页的内容
获取当前页每一部电影的链接
获取所有页的url连接
获取当前页的字段值
获取电影的排行次数
获取电影名称
获取导演名称
获取电影评分
获取电影描述
运行爬虫:
打开cmd运行下列命令:
scrapy crawl douban_movie_top250 -o douban.csv(douban_movie_top250即为我们刚刚写的爬虫的name, 而-o douban.csv是scrapy提供的将item输出为csv格式的快捷方式)
自动翻页:
- 在页面中找到下一页的地址;
- 自己根据URL的变化规律构造所有页面地址。
测试:
进行最后的测试,检查代码的严谨性与程序的可执行性。