python爬虫数据保存到mongoDB的实例方法


Posted in Python onJuly 28, 2020

爬虫数据保存到mongoDB的方法:

import pymongo

# 首先需要注意,mongodb数据库存储的类型是以键值对类型进行存储,所以在存储以前一定要进行数据筛选

def save_mongo(传入的数据):

# 创建连接 因为使用的为本机数据库,所以IP写localhost即可,端口号为27017


client = pymongo.MongoClient('localhost',27017)


# 连接数据库(这里注意一点,mongo数据库有一个优点,就是当自己连接的数据库和表都没有的时候,会自动创建,所以不用担心写错或者没有表)


db = client['自己创建数据库名']


# 连接表


collection = db['自己的表名(mongo中叫做集合)']


# 插入到数据库中(这里使用dict进行强制转换,是为了保证数据为字典格式)


collection.insert(dict(传入的数据))

mongoDB介绍:

它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有:

*面向集合存储,易存储对象类型的数据。

*模式自由。

*支持动态查询。

*支持完全索引,包含内部对象。

*支持查询。

*支持复制和故障恢复。

*使用高效的二进制数据存储,包括大型对象(如视频等)。

*自动处理碎片,以支持云计算层次的扩展性。

*支持 Golang,RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。

*文件存储格式为BSON(一种JSON的扩展)。

*可通过网络访问。

实例扩展:

# coding=utf-8

import re
import requests
from lxml import etree
import pymongo
import sys

reload(sys)
sys.setdefaultencoding('utf-8')

def getpages(url, total):
 nowpage = int(re.search('(\d+)', url, re.S).group(1))
 urls = []

 for i in range(nowpage, total + 1):
  link = re.sub('(\d+)', '%s' % i, url, re.S)
  urls.append(link)

 return urls

def spider(url):
 html = requests.get(url)

 selector = etree.HTML(html.text)

 book_name = selector.xpath('//*[@id="container"]/ul/li//div/div[2]/a/text()')
 book_author = selector.xpath('//*[@id="container"]/ul/li//div/div[2]/div/a/text()')

 saveinfo(book_name, book_author)

def saveinfo(book_name, book_author):
 connection = pymongo.MongoClient()
 BookDB = connection.BookDB
 BookTable = BookDB.books

 length = len(book_name)

 for i in range(0, length):
  books = {}
  books['name'] = str(book_name[i]).replace('\n','')
  books['author'] = str(book_author[i]).replace('\n','')
  BookTable.insert_one(books)

if __name__ == '__main__':
 url = 'http://readfree.me/shuffle/?page=1'
 urls = getpages(url,3)

 for each in urls:
  spider(each)

以上就是python爬虫数据保存到mongoDB的实例方法的详细内容,更多关于爬虫数据如何保存到mongoDB的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python中的ConfigParser模块使用详解
May 04 Python
从Python的源码来解析Python下的freeblock
May 11 Python
利用python爬取软考试题之ip自动代理
Mar 28 Python
Python实现完整的事务操作示例
Jun 20 Python
Python 模拟登陆的两种实现方法
Aug 10 Python
详解supervisor使用教程
Nov 21 Python
Windows下Anaconda的安装和简单使用方法
Jan 04 Python
对python字典过滤条件的实例详解
Jan 22 Python
python版DDOS攻击脚本
Jun 12 Python
python enumerate内置函数用法总结
Jan 07 Python
Pycharm 安装 idea VIM插件的图文教程详解
Feb 21 Python
Python退出时强制运行一段代码的实现方法
Apr 29 Python
Python3爬虫带上cookie的实例代码
Jul 28 #Python
python实现批处理文件
Jul 28 #Python
Python3安装模块报错Microsoft Visual C++ 14.0 is required的解决方法
Jul 28 #Python
python爬虫请求头设置代码
Jul 28 #Python
详解python安装matplotlib库三种失败情况
Jul 28 #Python
最简单的matplotlib安装教程(小白)
Jul 28 #Python
Python 如何实现访问者模式
Jul 28 #Python
You might like
PHP+DBM的同学录程序(1)
2006/10/09 PHP
PHP在网页中动态生成PDF文件详细教程
2014/07/05 PHP
一个简洁实用的PHP缓存类完整实例
2014/07/26 PHP
php数组索引与键值操作技巧实例分析
2015/06/24 PHP
YII使用url组件美化管理的方法
2015/12/28 PHP
IE7中javascript操作CheckBox的checked=true不打勾的解决方法
2009/12/07 Javascript
JQuery 插件制作实践 xMarquee插件V1.0
2010/04/02 Javascript
JS 面向对象之神奇的prototype
2011/02/26 Javascript
基于jQuery替换table中的内容并显示进度条的代码
2011/08/02 Javascript
JS运动相关知识点小结(附弹性运动示例)
2016/01/08 Javascript
Node.js项目中调用JavaScript的EJS模板库的方法
2016/03/11 Javascript
selenium 与 chrome 进行qq登录并发邮件操作实例详解
2017/04/06 Javascript
用nodejs实现json和jsonp服务的方法
2017/08/25 NodeJs
Three.js加载外部模型的教程详解
2017/11/10 Javascript
详解easyui基于 layui.laydate日期扩展组件
2018/07/18 Javascript
angular 表单验证器验证的同时限制输入的实现
2019/04/11 Javascript
javascript异步处理与Jquery deferred对象用法总结
2019/06/04 jQuery
Angular+Ionic使用queryParams实现跳转页传值的方法
2020/09/05 Javascript
[02:40]DOTA2殁境神蚀者 英雄基础教程
2013/11/26 DOTA
python任务调度实例分析
2015/05/19 Python
基于Python数据可视化利器Matplotlib,绘图入门篇,Pyplot详解
2017/10/13 Python
深入理解Django自定义信号(signals)
2018/10/15 Python
Python GUI库PyQt5样式QSS子控件介绍
2020/02/25 Python
在django admin中配置搜索域是一个外键时的处理方法
2020/05/20 Python
Python用来做Web开发的优势有哪些
2020/08/05 Python
html5-websocket基于远程方法调用的数据交互实现
2012/12/04 HTML / CSS
英国鹦鹉店:Parrot Essentials
2018/12/03 全球购物
LINUX下线程,GDI类的解释
2016/12/14 面试题
大四自我鉴定范文
2013/10/06 职场文书
《两个铁球同时着地》教学反思
2014/02/13 职场文书
公益广告标语
2014/06/19 职场文书
普通党员个人对照检查材料
2014/09/18 职场文书
查摆问题整改措施
2014/10/24 职场文书
员工自我工作评价
2015/03/06 职场文书
MySQL如何快速创建800w条测试数据表
2022/03/17 MySQL
在MySQL中你成功的避开了所有索引
2022/04/20 MySQL