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中的数据对象持久化存储模块pickle的使用示例
Mar 03 Python
在 Python 应用中使用 MongoDB的方法
Jan 05 Python
Python中取整的几种方法小结
Jan 06 Python
Python django实现简单的邮件系统发送邮件功能
Jul 14 Python
Python3中的最大整数和最大浮点数实例
Jul 09 Python
python实现微信自动回复机器人功能
Jul 11 Python
python tkinter窗口最大化的实现
Jul 15 Python
django项目登录中使用图片验证码的实现方法
Aug 15 Python
Python 进程操作之进程间通过队列共享数据,队列Queue简单示例
Oct 11 Python
Tensorflow中的图(tf.Graph)和会话(tf.Session)的实现
Apr 22 Python
virtualenv介绍及简明教程
Jun 23 Python
Python实现微信表情包炸群功能
Jan 28 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数字游戏 计算24算法
2012/06/10 PHP
PHP获取毫秒级时间戳的方法
2015/04/15 PHP
Yii2增删改查之查询 where参数详细介绍
2016/08/08 PHP
php获取微信共享收货地址的方法
2017/12/21 PHP
详解PHP素材图片上传、下载功能
2019/04/12 PHP
PHP使用 Imagick 扩展实现图片合成,圆角处理功能示例
2019/09/09 PHP
Firefox div高度自适应
2009/04/28 Javascript
jquery动态添加元素事件失效问题解决方法
2014/05/23 Javascript
基于JavaScript实现单选框下拉菜单添加文件效果
2016/06/26 Javascript
bootstrap datepicker限定可选时间范围实现方法
2016/09/28 Javascript
深入理解javascript中concat方法
2016/12/12 Javascript
前端js弹出框组件使用方法
2020/08/24 Javascript
jQuery 禁止表单用户名、密码自动填充功能
2017/10/30 jQuery
又拍云 Node.js 实现文件上传、删除功能
2018/10/28 Javascript
如何在Vue中使用CleaveJS格式化你的输入内容
2018/12/14 Javascript
Vue 中可以定义组件模版的几种方式
2019/08/06 Javascript
[48:02]Ti4循环赛第三日 VG vs Liquid和NEWBEE vs DK
2014/07/12 DOTA
Python中的__new__与__init__魔术方法理解笔记
2014/11/08 Python
windows 下python+numpy安装实用教程
2017/12/23 Python
python中使用xlrd读excel使用xlwt写excel的实例代码
2018/01/31 Python
TensorFlow 模型载入方法汇总(小结)
2018/06/19 Python
Pycharm之快速定位到某行快捷键的方法
2019/01/20 Python
Python模拟百度自动输入搜索功能的实例
2019/02/14 Python
Python进度条的制作代码实例
2019/08/31 Python
Python使用指定字符长度切分数据示例
2019/12/05 Python
django自带的权限管理Permission用法说明
2020/05/13 Python
意大利网上书店:LaFeltrinelli
2020/06/12 全球购物
AURALog面试题软件测试方面
2013/10/22 面试题
技术经理的自我评价范文
2013/12/03 职场文书
实习公司领导推荐函
2014/05/21 职场文书
党员作风建设自查报告
2014/10/23 职场文书
党的群众路线教育实践活动个人对照检查材料(公安)
2014/11/05 职场文书
社区六一儿童节活动总结
2015/02/11 职场文书
《玩出了名堂》教学反思
2016/02/17 职场文书
解决pycharm下载库时出现Failed to install package的问题
2021/09/04 Python
详解Java七大阻塞队列之SynchronousQueue
2021/09/04 Java/Android