开发者社区> 张包峰> 正文

Python+MongoDB 爬虫实战

简介:
+关注继续查看

工具准备及爬虫搭建


Scrapy(python写成的爬虫框架)

在前一篇 Scrapy爬虫入门 里有写到Scrapy的安装和基本使用,他的特点是每个不同的page都自己定制一个不同的Spider,通过

scrapy crawl spidername -o file -t json

的方法运行爬虫程序并且以json形式保存到目标文件里(当然后面 -o -t 两项可以省略)。而且python代码很少,实现很方便。简单看下python的语法就可以轻松上手。

顺便以Java开发者和python小白用户的角度阐述下我对python语法的总结:

  1. 句末不带分号
  2. if,while,for不带大括号
  3. 变量不用声明,比js声明还简单
  4. 三个主要数据结果:字典,列表,元组
  5. 没有好的IDE,全靠自己声明:包的导入要自己声明,异常要自己声明
  6. 代码短小,给我很强烈的空虚感

MongoDB(带上pymongo和mongo-java-driver)

很早以前就想实践下MongoDB,早早的看过《MongoDB权威指南》,却一直没有机会实战,亏得毕设可以让我有了需求驱动。因为MongoDB以BSON的形式存储对象,所以我觉得蛮适合存储Scrapy的json爬取结果,由pymongo进行交互。爬取到的数据后期会交由solr搭建搜索服务,所以也装上了java的driver看看读取结果。

java-driver的简单操作

pymongo的简单操作


数据尝试

以CSDN博客里的数据练手,爬取CSDN各博客内的博文内容数据。先爬取热门文章页面上的一些博主名字和url:

{
    'username' : 'xxx',
    'url' : 'http://blog.csdn.net/xxx/article/list/n'
}
然后爬取该博主所有的文章url链接,再爬取每份url链接里的内容,存到MongoDB里:

{
    'user' : 'xxx',
    'title' : 'xxxxx',
    'tag' : ['xx', 'xx', 'xx'],
    'content' : 'xxxxxxxxxxxxxxxxxxxxxxxx' 
}


总结

有一些技术是由需求驱动才去尝试学习;有一些问题只要具备一定的执行力就能发现。

MongoDB读取性能如何?他的自动分片怎么得以体现?自带的js版mapreduce如何利用?

如何将Scrapy做成一种服务?python语言的各种实践?

今后的数据会设计论文,个人主页,这里的CSDN博客数据只是整条道路的铺垫。不过对整个学习和探索过程我还是充满期待,哈哈。

项目地址https://github.com/zbf8441372/VerticleSearchEngine



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
这个开源项目绝绝子,一键生成好玩的矢量风格头像!
最近逛 GitHub,发现了一个非常好玩的开源项目——头像生成器,给大家分享一下~
6 0
变量、常量
变量、常量
4 0
JSP - 起源、执行过程、运行原理、生命周期
JSP - 起源、执行过程、运行原理、生命周期
5 0
在函数中使用局部变量并且通过局部变量返回函数值的方案来了
感谢小游戏可视化体验官群中的一位叫做“@天羽地王”的朋友提供的思路。本文内容主要包括如何在函数中使用局部变量并且通过局部变量来返回函数的结果值。
12 0
微信小游戏推广运营专业术语汇总
本文内容包括与微信小游戏运营推广相关的专业术语的汇总和解释。作为一个游戏开发者,不光要知道如何做游戏,也要知道如何让别人玩自己做的游戏。
5 0
心中有“树”!图文并茂介绍数据结构中常见的树(三)
在前面两篇文章中,我们简要介绍了数据结构中的各种【树】在搜索、数据库等领域的使用场景,希望对大家有所帮助。
11 0
Travis CI简介
什么是持续集成? Travis CI 提供的是持续集成服务(Continuous Integration,简称 CI)。它绑定 Github 上面的项目,只要有新的代码,就会自动抓取。然后,提供一个运行环境,执行测试,完成构建,还能部署到服务器。
8 0
如何在小游戏制作工具中使用云函数
本节试图以最简单的方式带你了解如何在小程序后台申请和开通云开发服务,创建并编写第一个云函数并在小游戏制作工具中对其进行调用。
11 0
Vue入门 基本使用 与 事务管理【1】
Vue入门 基本使用 与 事务管理【1】
10 0
+关注
张包峰
分布式系统 http://weibo.com/pelickzhang
93
文章
9
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载