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实现SMTP邮件发送功能
Jun 16 Python
Python Queue模块详细介绍及实例
Dec 27 Python
python中的for循环
Sep 28 Python
Selenium chrome配置代理Python版的方法
Nov 29 Python
python实现图片插入文字
Nov 26 Python
Win系统PyQt5安装和使用教程
Dec 25 Python
Python打开文件、文件读写操作、with方式、文件常用函数实例分析
Jan 07 Python
Python3之外部文件调用Django程序操作model等文件实现方式
Apr 07 Python
Python实现疫情通定时自动填写功能(附代码)
May 27 Python
如何使用pycharm连接Databricks的步骤详解
Sep 23 Python
Python调用Redis的示例代码
Nov 24 Python
pytorch 如何使用amp进行混合精度训练
May 24 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
从一个不错的留言本弄的mysql数据库操作类
2007/09/02 PHP
php实现utf-8转unicode函数分享
2015/01/06 PHP
PHP配置把错误日志以邮件方式发送方法(Windows系统)
2015/06/23 PHP
jquery中输入验证中一个不错的效果
2010/08/21 Javascript
在服务端(Page.Write)调用自定义的JS方法详解
2013/08/09 Javascript
jQuery实现拖拽效果插件的方法
2015/03/23 Javascript
纯JS实现本地图片预览的方法
2015/07/31 Javascript
JS实现弹出浮动窗口(支持鼠标拖动和关闭)实例详解
2015/08/06 Javascript
JavaScript从0开始构思表情插件
2016/07/26 Javascript
Node.js测试中的Mock文件系统详解
2016/11/21 Javascript
AngularJS 使用ng-repeat报错 [ngRepeat:dupes]
2017/01/19 Javascript
Angular中使用better-scroll插件的方法
2018/03/27 Javascript
JavaScript动态加载重复绑定问题
2018/04/01 Javascript
详解如何在微信小程序中愉快地使用sass
2018/07/30 Javascript
vue实现循环切换动画
2018/10/17 Javascript
基于Koa2写个脚手架模拟接口服务的方法
2018/11/27 Javascript
Vue递归组件+Vuex开发树形组件Tree--递归组件的简单实现
2019/04/01 Javascript
详解VUE调用本地json的使用方法
2019/05/15 Javascript
axios异步提交表单数据的几种方法
2019/08/11 Javascript
如何在 Vue 中使用 JSX
2021/02/14 Vue.js
[03:00]2018完美盛典_最佳英雄奖
2018/12/17 DOTA
浅谈Python类的__getitem__和__setitem__特殊方法
2016/12/25 Python
python 根据pid杀死相应进程的方法
2017/01/16 Python
Django Rest framework认证组件详细用法
2019/07/25 Python
导入tensorflow:ImportError: libcublas.so.9.0 报错
2020/01/06 Python
在python3中实现更新界面
2020/02/21 Python
python调用私有属性的方法总结
2020/07/24 Python
西班牙太阳镜品牌:Hawkers
2018/03/11 全球购物
抽象类和接口的区别
2012/09/19 面试题
餐饮加盟计划书
2014/01/10 职场文书
新学期开学寄语
2014/01/18 职场文书
本科生自荐信
2014/06/18 职场文书
学习十八届四中全会依法治国心得体会
2014/11/03 职场文书
市场部岗位职责范本
2015/04/15 职场文书
2016年情人节问候语
2015/11/11 职场文书
HAM-2000摩机图
2021/04/22 无线电