2.3.1 创建项目
在开始爬取之前,我们必须创建一个新的Scrapy项目。 进入打算存储代码的目录中,运行下列命令:
scrapy startproject cartoon1
scrapy startproject是固定命令,后面的cartoon是自己想起的工程名字。这里,我起名为cartoon(漫画)。
该命令将会创建包含下列内容的cartoon目录:
想要显示全,就需要extract()方法,转换成字符串输出,指令如下:
response.xpath('//dd/a[1]').extract()1
从运行结果可以看出,这样就显示完全了。现在开始思考一个问题,如果我想保存每个章节的图片,需要哪些东西?链接必不可少,当然还有每个章节的名字,我们要以文件夹的形式存储每个章节,文件夹的命名就是章节的名字,这样更规整。
我们使用text()获取每个章节的名字,指令如下:
response.xpath('//dd/a[1]/text()').extract()1
瞧,每个章节的名字被我们轻松的提取出来了,记住这个指令,在编写程序的时候,需要用到。
获取完章节名字,接下来就是获取链接了,使用指令如下:
response.xpath('//dd/a[1]/@href').extract()1
Scrapy还是蛮好用的嘛~省去了使用Beautifulsoup这些工具的使用。当然,它的强大不仅仅于此,让我们慢慢道来。
该网站是使用如下指令加载图片的:
document.write("![](%22+server+%22comic/kuku2comic/Naruto/01/01_01.JPG)
");1
JS脚本放在网页里,没有使用外部JS脚本,这就更好办了,直接获取脚本信息,不就能获取图片链接了?使用指令如下:
response.xpath('//script/text()').extract()1
通过运行结果可以看出,我们已经获取到了图片链接,server的值是通过运行JS外部脚本获得的,但是这里,我们仔细观察server的值为http://n.1whour.com/,其他页面也是一样,因此也就简化了流程。同样,记住这个指令,编写程序的时候会用到。
再打印章节名字看看,代码如下:
章节名字打印成功!
2.4.2 Items编写
刚刚进行了简单的测试,了解下Spiders的编写。现在开始进入正题,按步骤编写爬虫。第一步,填写items.py,内容如下: