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回调函数用法实例分析
May 09 Python
Django中URLconf和include()的协同工作方法
Jul 20 Python
Python操作MongoDB详解及实例
May 18 Python
Python 和 JS 有哪些相同之处
Nov 23 Python
Linux-ubuntu16.04 Python3.5配置OpenCV3.2的方法
Apr 02 Python
使用python读取csv文件快速插入数据库的实例
Jun 21 Python
python 同时运行多个程序的实例
Jan 07 Python
Python生成词云的实现代码
Jan 14 Python
完美解决pyinstaller打包报错找不到依赖pypiwin32或pywin32-ctypes的错误
Apr 01 Python
Python BeautifulReport可视化报告代码实例
Apr 13 Python
numpy矩阵数值太多不能全部显示的解决
May 14 Python
浅谈Python响应式类库RxPy
Jun 14 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 at(@)符号的用法简介
2009/07/11 PHP
PHP 源代码压缩小工具
2009/12/22 PHP
php检查函数必传参数是否存在的实例详解
2017/08/28 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
2017/11/13 PHP
php实现的AES加密类定义与用法示例
2018/01/29 PHP
使用PHPUnit进行单元测试并生成代码覆盖率报告的方法
2019/03/08 PHP
Jquery乱码的一次解决过程 图解教程
2010/02/20 Javascript
JS字符串累加Array不一定比字符串累加快(根据电脑配置)
2012/05/14 Javascript
js传中文参数controller里获取参数乱码问题解决方法
2014/01/03 Javascript
创建、调用JavaScript对象的方法集锦
2014/12/24 Javascript
jQuery解析XML文件同时动态增加js文件的方法
2015/06/01 Javascript
JS模仿编辑器实时改变文本框宽度和高度大小的方法
2015/08/17 Javascript
JQuery实现左右滚动菜单特效
2015/09/28 Javascript
javascript中类的定义方式详解(四种方式)
2015/12/22 Javascript
jQuery取得iframe中元素的常用方法详解
2016/01/14 Javascript
JS获取时间的相关函数及时间戳与时间日期之间的转换
2016/02/04 Javascript
js将字符串中的每一个单词的首字母变为大写其余均为小写
2017/01/05 Javascript
JS实现隔行换色的表格排序
2017/03/27 Javascript
MUI  Scroll插件的使用详解
2017/04/13 Javascript
兼容浏览器的js事件绑定函数(详解)
2017/05/09 Javascript
基于Datatables跳转到指定页的简单实例
2017/11/09 Javascript
解决vue中虚拟dom,无法实时更新的问题
2018/09/15 Javascript
vue favicon设置以及动态修改favicon的方法
2018/12/21 Javascript
详解Vue.js和layui日期控件冲突问题解决办法
2019/07/25 Javascript
一步一步实现Vue的响应式(对象观测)
2019/09/02 Javascript
python自动发送邮件脚本
2018/06/20 Python
用Python写一个模拟qq聊天小程序的代码实例
2019/03/06 Python
Python中zip()函数的简单用法举例
2019/09/02 Python
Python的缺点和劣势分析
2019/11/19 Python
django框架forms组件用法实例详解
2019/12/10 Python
Scrapy框架介绍之Puppeteer渲染的使用
2020/06/19 Python
如何清空python的变量
2020/07/05 Python
现代家居用品及礼品:LBC Modern
2018/06/24 全球购物
C语言面试题
2013/05/19 面试题
2014年高三毕业生自我评价
2014/01/11 职场文书
电力培训心得体会
2014/09/02 职场文书