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 图片验证码代码分享
Jul 04 Python
python验证码识别的示例代码
Sep 21 Python
解决Pycharm界面的子窗口不见了的问题
Jan 17 Python
django迁移数据库错误问题解决
Jul 29 Python
python多进程使用函数封装实例
May 02 Python
详解python tkinter 图片插入问题
Sep 03 Python
python实现简单遗传算法
Sep 18 Python
python利用 keyboard 库记录键盘事件
Oct 16 Python
使用OpenCV校准鱼眼镜头的方法
Nov 26 Python
Python安装Bs4的多种方法
Nov 28 Python
Python移位密码、仿射变换解密实例代码
Jun 27 Python
Python 图片添加美颜效果
Apr 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
SONY ICF-SW07收音机电路分析
2021/03/02 无线电
rrmdir php中递归删除目录及目录下的文件
2011/05/15 PHP
ThinkPHP3.1新特性之动态设置自动完成和自动验证示例
2014/06/19 PHP
php 实现Hash表功能实例详解
2016/11/29 PHP
PHP new static 和 new self详解
2017/02/19 PHP
PHP4和PHP5版本下解析XML文档的操作方法实例分析
2017/05/20 PHP
PHP读取目录树的实现方法分析
2019/03/22 PHP
Laravel相关的一些故障解决
2020/08/19 PHP
纯js实现的论坛常用的运行代码的效果
2008/07/15 Javascript
Js 获取HTML DOM节点元素的方法小结
2009/04/24 Javascript
brook javascript框架介绍
2011/10/10 Javascript
jQuery获取Select选择的Text和Value(详细汇总)
2013/01/25 Javascript
jQuery实现动画效果的实例代码
2013/05/07 Javascript
javascript显示倒计时控制按钮的简单实现
2016/06/07 Javascript
JS中常用的正则表达式
2016/09/29 Javascript
JS中使用mailto实现将用户在网页中输入的内容传递到本地邮件客户端
2016/10/08 Javascript
如何使用angularJs
2017/05/08 Javascript
Vue ElementUI之Form表单验证遇到的问题
2017/08/21 Javascript
Vue中computed与methods的区别详解
2018/03/24 Javascript
react 实现页面代码分割、按需加载的方法
2018/04/03 Javascript
vue elementui el-form rules动态验证的实例代码详解
2019/05/23 Javascript
[02:39]我与DAC之Newbee.Moogy:从论坛到TI
2018/03/26 DOTA
深入Python解释器理解Python中的字节码
2015/04/01 Python
Python双向循环链表实现方法分析
2018/07/30 Python
python GUI图形化编程wxpython的使用
2019/07/19 Python
python模块导入的方法
2019/10/24 Python
python中利用matplotlib读取灰度图的例子
2019/12/07 Python
Python类的绑定方法和非绑定方法实例解析
2020/03/04 Python
keras 获取某层输出 获取复用层的多次输出实例
2020/05/23 Python
Python结合Window计划任务监测邮件的示例代码
2020/08/05 Python
html5拖曳操作 HTML5实现网页元素的拖放操作
2013/01/02 HTML / CSS
俄罗斯卫浴采暖及维修用品超级市场:Dkrussia
2020/05/12 全球购物
简历的自荐信
2013/12/19 职场文书
《一本男孩子必读的书》教学反思
2014/02/19 职场文书
《鸿门宴》教学反思
2014/04/22 职场文书
JavaWeb Servlet实现网页登录功能
2021/07/04 Java/Android