scrapy学习笔记——scrapy目录含义

当一个scrapy项目被成功创建时,会自动生成一些文件。例如:

scrapy学习笔记——scrapy目录含义_第1张图片

其中spiders文件夹用于存放自己编写的爬虫代码,而其他文件都是系统生成。

Items.py文件存放的是Item,而Item也就是提取到的数据的容器。

import scrapy

class FirstspiderItem(scrapy.Item):
    name = scrapy.Field()

Item中的内容是通过对解析的网站分析得到的,例如本例中只需要取得名称,那么就只定义一个name即可,如果还需要url,只要在加上一句url=scrapy.Field()即可。


在firstSpider/spiders目录下用于存放自己编写的爬虫,本例的example.py文件内容如下:

class ExampleSpider(scrapy.Spider):
    name = "example"
    allowed_domains = ["zhihu.com"]
    start_urls = (
        'http://www.zhihu.com/question/31810474#answer-16771792',
    )

    def parse(self, response):
        filename = response.url.split("/")[-2]
        print filename
        with open(filename,"wb") as f:
        	f.write(response.body)

首先创建一个名字类似于xxxSpider()的类,并继承scrapy.Spider类,并自定义name、start_urls和parse()。

name是爬虫的名字,必须是唯一的。

start_urls是Spider在启动时进行爬取的url列表,所以起始url可以是多个。

parse()传入一个response参数,这个方法解析response数据,生成Item,以及需要进一步处理的URL的Request对象。

本例中filename实际上就是start_urls中的question单词。将读取到的页面内容保存到『question』文件中。


完成以上步骤,第一个页面就已经被爬下来了。

下一课学习页面解析。

你可能感兴趣的:(python)