Scrapy+Mongodb爬取数据

前一段(30天爬虫学习),我把数据都保存为Excel或csv格式。一方面数据看起来比较直观,Excel方便做数据提取、分析。另一个方面我对其他数据分析的工具不熟悉,昨天看一到篇用padans的文章,是接下来学习的内容。还下载一本书《利用Python进行数据分析》

《Scrapy+Mongodb爬取数据》

有了数据,如何分析,如何呈现就很关键。先说说Scrapy数据存储到mongodb中,以及我的疑问。

Scrapy爬虫数据存到mongodb中比较简单。

1、在settings.py中进行配置

#启用一个Item Pipeline组件
ITEM_PIPELINES = {
    'jianshu.pipelines.JianshuPipeline': 10,
}

#连接数据库的信息,存到mydb的articles数据集中
MONGODB_HOST='127.0.0.1'
MONGODB_PORT=27017
MONGODB_DBNAME='mydb'
MONGODB_DOCNAME='articles'

2、修改pipeline文件
首先初始化获得settings中的mongodb数据库信息,在process_item提交插入数据。

class JianshuPipeline(object):

    def __init__(self):
        host = settings['MONGODB_HOST']
        port = settings['MONGODB_PORT']
        dbName = settings['MONGODB_DBNAME']
        client = pymongo.MongoClient(host=host, port=port)
        tdb = client[dbName]
        self.post = tdb[settings['MONGODB_DOCNAME']]

    def process_item(self, item, spider):
        article = dict(item)
        self.post.insert(article)
        return item

运行这个爬虫就OK了。来看一下mongodb中的记录。我使用的是命令行。

《Scrapy+Mongodb爬取数据》 有了数据集articles

db.articles.find() 查看下一页键入it

《Scrapy+Mongodb爬取数据》 存储的json数据格式

再把mongodb中的数据导入看一下:

《Scrapy+Mongodb爬取数据》 导出99条数据

但是是这样的:

《Scrapy+Mongodb爬取数据》 json格式

看起来很不方便,看来是需要学习其他分析工具的时候了。加上 –type=csv,导出时给了一个错误提示。只能先存疑了。

《Scrapy+Mongodb爬取数据》 –csv导出

点赞