Python学习-scrapy4

接上次实践案例继续学习记录,之前已经成功运行抓取事例,为了能修改代码获取想要的内容需要对已成功代码实施研读理解。

首先从获取结果来开展疑问解惑:

{"title": ["\u7f51\u9875"], "link": ["https://www.baidu.com/"], "desc": []},

{"title": [], "link": [], "desc": []},

{"title": ["\u8d34\u5427"], "link": ["http://tieba.baidu.com/"], "desc": []},

{"title": ["\u77e5\u9053"], "link": ["https://zhidao.baidu.com/"], "desc": []},

{"title": ["\u97f3\u4e50"], "link": ["http://music.baidu.com/"], "desc": []},

{"title": ["\u56fe\u7247"], "link": ["http://image.baidu.com/"], "desc": []},

{"title": ["\u89c6\u9891"], "link": ["http://v.baidu.com/"], "desc": []},

{"title": ["\u5730\u56fe"], "link": ["http://map.baidu.com/"], "desc": []},

{"title": ["\u6587\u5e93"], "link": ["http://wenku.baidu.com/"], "desc": []},

从上面抓取到的结果可以看到内容是按title、link、desc三个字段分别存储对应内容,那么这些数据在代码中是怎么定义和使用的呢?通过确认找到是items.py文件定义的。

从官方资料中找到items描述如下:

        爬取的主要目标就是从非结构性的数据源提取结构性数据,例如网页, Scrapy提供 Item 类来满足这样的需求。Item 对象是种简单的容器,保存了爬取到得数据。 其提供了 类似于词典(dictionary-like) 的API以及用于声明可用字段的简单语法。

上文定义中提到的词典是什么呢?通过搜索找到是Python的字典(Dictionary)功能,其定义如下:

        字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:

        d = {key1 : value1, key2 : value2 }

        键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一。

        >>>dict = {'a': 1, 'b': 2, 'b': '3'};

        >>> dict['b']'3'>>> dict{'a': 1, 'b': '3'}

        值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

        一个简单的字典实例:

        dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}

        也可如此创建字典:

        dict1 = { 'abc': 456 };dict2 = { 'abc': 123, 98.6: 37 };

从如上字典学习了解到scrapy最终存储的数据都是以字典方式存储展现。

你可能感兴趣的:(Python学习-scrapy4)