今天继续练习scrapy,去爬豆瓣top250的图书,原站地址:https://book.douban.com/top250。
1.首先,按照Day1的步骤,编写以下代码爬取第一页的书本信息:

items.py配置如下:

运行一下,发现报错:

这应该是目标站点有反爬的功能,访问被禁止了。
2.给脚本配置一个user agent,模拟真实的浏览器
在middlewares.py中,增加以下代码:

在settings中增加以下代码:

目前还是只能爬第一页,需要爬取全部的250本书的简介,bookspider中增加代码:

3. 保存在csv文件中
事实上,scrapy有命令支持把item保存在csv文件中,不用自己在pipelines.py中编写代码。运行命令:
>scrapy crawl douban -o douban_book.csv
打开douban_book.csv,我们可以看到图书信息都已经保存下来:

网友评论