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中使用PyHook监听鼠标和键盘事件实例
Jul 18 Python
Python判断变量是否已经定义的方法
Aug 18 Python
Python安装Imaging报错:The _imaging C module is not installed问题解决方法
Aug 22 Python
Python运算符重载用法实例分析
Jun 01 Python
Python素数检测实例分析
Jun 15 Python
使用pandas的DataFrame的plot方法绘制图像的实例
May 24 Python
Pandas中Series和DataFrame的索引实现
Jun 27 Python
Python tkinter三种布局实例详解
Jan 06 Python
pytorch实现线性拟合方式
Jan 15 Python
python实现同一局域网下传输图片
Mar 20 Python
Python APScheduler执行使用方法详解
Dec 10 Python
Python代码实现双链表
May 25 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 minixml详解
2008/07/19 PHP
php学习笔记 [预定义数组(超全局数组)]
2011/06/09 PHP
php URL跳转代码 减少外链
2011/06/25 PHP
学习php过程中的一些注意点的总结
2013/10/25 PHP
PHP之APC缓存详细介绍 apc模块安装
2014/01/13 PHP
php中使用base HTTP验证的方法
2015/04/20 PHP
php实现只保留mysql中最新1000条记录
2015/06/18 PHP
PHP自带方法验证邮箱是否存在
2016/02/01 PHP
php中简单的对称加密算法实现
2017/01/05 PHP
麻雀虽小五脏俱全 Dojo自定义控件应用
2010/09/04 Javascript
JS判断文本框内容改变事件的简单实例
2014/03/07 Javascript
一个JavaScript递归实现反转数组字符串的实例
2014/10/14 Javascript
JS判断浏览器是否支持某一个CSS3属性的方法
2014/10/17 Javascript
JavaScript面向对象之私有静态变量实例分析
2016/01/14 Javascript
使用ReactJS实现tab页切换、菜单栏切换、手风琴切换和进度条效果
2016/10/17 Javascript
Javascrip实现文字跳动特效
2016/11/27 Javascript
Bootstarp基本模版学习教程
2017/02/01 Javascript
JS表单传值和URL编码转换
2018/03/03 Javascript
浅谈JavaScript面向对象--继承
2019/03/20 Javascript
详解小程序之简单登录注册表单验证
2019/05/13 Javascript
关于Vue中axios的封装实例详解
2019/10/20 Javascript
Angular6项目打包优化的实现方法
2019/12/15 Javascript
JavaScript实现多球运动效果
2020/09/07 Javascript
[04:47]DOTA2-潍坊风行电子俱乐部探秘
2014/08/08 DOTA
用Python计算三角函数之atan()方法的使用
2015/05/15 Python
Python 专题六 局部变量、全局变量global、导入模块变量
2017/03/20 Python
Python编程修改MP3文件名称的方法
2017/04/19 Python
Python2随机数列生成器简单实例
2017/09/04 Python
PyCharm安装第三方库如Requests的图文教程
2018/05/18 Python
选择python进行数据分析的理由和优势
2019/06/25 Python
戴森美国官网:Dyson美国
2016/09/11 全球购物
PHP面试题-$message和$$message的区别
2015/12/08 面试题
大学校庆邀请函
2014/01/11 职场文书
审计局2014法制宣传日活动总结
2014/11/01 职场文书
幼儿园教师工作总结2015
2015/04/02 职场文书
董事长年会致辞
2015/07/29 职场文书