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操作ssh实现服务器日志下载的方法
Jun 03 Python
Python实现八大排序算法
Aug 13 Python
Python使用matplotlib模块绘制图像并设置标题与坐标轴等信息示例
May 04 Python
Python 中的range(),以及列表切片方法
Jul 02 Python
使用python对文件中的单词进行提取的方法示例
Dec 21 Python
anaconda如何查看并管理python环境
Jul 05 Python
用python给自己做一款小说阅读器过程详解
Jul 11 Python
用sqlalchemy构建Django连接池的实例
Aug 29 Python
解决python 读取excel时 日期变成数字并加.0的问题
Oct 08 Python
python如何通过闭包实现计算器的功能
Feb 22 Python
在主流系统之上安装Pygame的方法
May 20 Python
Django Form常用功能及代码示例
Oct 13 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计算数组不为空元素个数的方法
2014/01/27 PHP
PHP中类型转换 ,常量,系统常量,魔术常量的详解
2017/10/26 PHP
PHP折半(二分)查找算法实例分析
2018/05/12 PHP
解决 firefox 不支持 document.all的方法
2007/03/12 Javascript
JavaScript CSS修改学习第一章 查找位置
2010/02/19 Javascript
新鲜出炉的js tips提示效果
2011/04/03 Javascript
关于JS中的闭包浅谈
2013/08/23 Javascript
SeaJS入门教程系列之使用SeaJS(二)
2014/03/03 Javascript
JavaScript设计模式之单件模式介绍
2014/12/28 Javascript
JavaScript判断用户是否对表单进行了修改的方法
2015/03/18 Javascript
[原创]SyntaxHighlighter自动识别并加载脚本语言
2017/02/07 Javascript
多个上传文件用js验证文件的格式和大小的方法(推荐)
2017/03/09 Javascript
Vue.js中轻松解决v-for执行出错的三个方案
2017/06/09 Javascript
Vue2路由动画效果的实现代码
2017/07/10 Javascript
js+html5实现页面可刷新的倒计时效果
2017/07/15 Javascript
node.js express中app.param的用法详解
2017/07/16 Javascript
jQuery实现使用sort方法对json数据排序的方法
2018/04/17 jQuery
JS实现图片上传多次上传同一张不生效的处理方法
2018/08/06 Javascript
Vue-Quill-Editor富文本编辑器的使用教程
2018/09/21 Javascript
微信小程序实现留言板功能
2018/11/02 Javascript
对 Vue-Router 进行单元测试的方法
2018/11/05 Javascript
基于vue实现移动端圆形旋钮插件效果
2018/11/28 Javascript
python 随机数生成的代码的详细分析
2011/05/15 Python
python局部赋值的规则
2013/03/07 Python
Python中pip安装非PyPI官网第三方库的方法
2015/06/02 Python
Pytorch 实现focal_loss 多类别和二分类示例
2020/01/14 Python
python求最大公约数和最小公倍数的简单方法
2020/02/13 Python
基于html5 canvas做批改作业的小插件
2020/05/20 HTML / CSS
StudentUniverse英国:学生航班、酒店和旅游
2019/08/25 全球购物
澳大利亚在线购买葡萄酒:The Wine Collective
2020/02/20 全球购物
毕业生就业推荐表自我鉴定
2014/03/20 职场文书
五四演讲稿范文
2014/09/03 职场文书
工资收入证明
2014/10/07 职场文书
职称评定个人总结
2015/03/05 职场文书
车间质检员岗位职责
2015/04/08 职场文书
试用期旷工辞退通知书
2015/04/17 职场文书