Python+MongoDB 爬虫实战

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介:

工具准备及爬虫搭建


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



相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
20天前
|
数据采集 缓存 Java
Python vs Java:爬虫任务中的效率比较
Python vs Java:爬虫任务中的效率比较
|
2天前
|
数据采集 机器学习/深度学习 人工智能
Python编程入门:从基础到实战
【10月更文挑战第24天】本文将带你进入Python的世界,从最基础的语法开始,逐步深入到实际的项目应用。我们将一起探索Python的强大功能和灵活性,无论你是编程新手还是有经验的开发者,都能在这篇文章中找到有价值的内容。让我们一起开启Python的奇妙之旅吧!
|
1天前
|
数据采集 存储 机器学习/深度学习
构建高效的Python网络爬虫
【10月更文挑战第25天】本文将引导你通过Python编程语言实现一个高效网络爬虫。我们将从基础的爬虫概念出发,逐步讲解如何利用Python强大的库和框架来爬取、解析网页数据,以及存储和管理这些数据。文章旨在为初学者提供一个清晰的爬虫开发路径,同时为有经验的开发者提供一些高级技巧。
5 1
|
4天前
|
数据采集 存储 数据库
Python中实现简单爬虫的入门指南
【10月更文挑战第22天】本文将带你进入Python爬虫的世界,从基础概念到实战操作,一步步指导你如何使用Python编写一个简单的网络爬虫。我们将不展示代码示例,而是通过详细的步骤描述和逻辑讲解,帮助你理解爬虫的工作原理和开发过程。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你打开一扇通往数据收集新世界的大门。
|
5天前
|
数据采集 Python
python爬虫抓取91处理网
本人是个爬虫小萌新,看了网上教程学着做爬虫爬取91处理网www.91chuli.com,如果有什么问题请大佬们反馈,谢谢。
20 4
|
3天前
|
JavaScript 数据安全/隐私保护 Python
python爬取m3u8实战!!
本文详细介绍了如何抓取和处理m3u8视频文件,包括从网页源代码中提取m3u8文件地址、下载m3u8文件及其对应的ts片段、处理加密的ts文件以及使用ffmpeg合并视频片段。通过多线程下载和文件路径处理,确保了高效和准确的视频抓取与合并。文中还提供了具体的Python代码示例,帮助读者理解和实现整个过程。
14 1
|
16天前
|
机器学习/深度学习 数据挖掘 Serverless
手把手教你全面评估机器学习模型性能:从选择正确评价指标到使用Python与Scikit-learn进行实战演练的详细指南
【10月更文挑战第10天】评估机器学习模型性能是开发流程的关键,涉及准确性、可解释性、运行速度等多方面考量。不同任务(如分类、回归)采用不同评价指标,如准确率、F1分数、MSE等。示例代码展示了使用Scikit-learn库评估逻辑回归模型的过程,包括数据准备、模型训练、性能评估及交叉验证。
38 1
|
17天前
|
调度 开发者 Python
探索Python中的异步编程:从基础到实战
【10月更文挑战第9天】在Python的世界中,异步编程是一个让开发者既能提升应用性能又能保持代码可读性的强大工具。本文将带你一探究竟,从理解异步编程的基本概念开始,到深入剖析其背后的原理,再到通过实际代码示例掌握其应用技巧。无论你是异步编程的新手还是希望深化理解的老手,这篇文章都将为你打开一扇新的大门,让你的项目因使用异步而更加高效和强大。
|
19天前
|
数据采集 Web App开发 数据可视化
Python爬虫教程:Selenium可视化爬虫的快速入门
Python爬虫教程:Selenium可视化爬虫的快速入门
|
22天前
|
存储 人工智能 Java
Python编程入门:从基础到实战
【10月更文挑战第4天】本文旨在为初学者提供一个全面而深入的Python编程学习路径。我们将从Python的基本语法和概念开始,然后逐步深入到更复杂的主题,如数据结构、面向对象编程和异常处理等。最后,我们将通过一些实际的项目案例,帮助读者将理论知识应用到实践中去。无论你是编程新手,还是有一定经验的开发者,都可以在这篇文章中找到适合自己的学习内容。让我们一起开启Python编程的学习之旅吧!