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开发微信支付的注意事项
Aug 19 Python
基于Python数据可视化利器Matplotlib,绘图入门篇,Pyplot详解
Oct 13 Python
python微信跳一跳系列之色块轮廓定位棋盘
Feb 26 Python
Python+selenium 获取一组元素属性值的实例
Jun 22 Python
Python线程下使用锁的技巧分享
Sep 13 Python
Django csrf 验证问题的实现
Oct 09 Python
django 实现编写控制登录和访问权限控制的中间件方法
Jan 15 Python
python批量修改图片尺寸,并保存指定路径的实现方法
Jul 04 Python
Python基于BeautifulSoup和requests实现的爬虫功能示例
Aug 02 Python
Python散点图与折线图绘制过程解析
Nov 30 Python
python matplotlib imshow热图坐标替换/映射实例
Mar 14 Python
python with语句的原理与用法详解
Mar 30 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日期时间函数的高级应用技巧
2009/05/16 PHP
PHP正则之正向预查与反向预查讲解与实例
2020/04/06 PHP
PHP获取当前时间不准确问题解决方案
2020/08/14 PHP
基于jQuery的图片剪切插件
2011/08/03 Javascript
jQuery学习笔记之jQuery中的$
2015/01/19 Javascript
ClearTimeout消除闪动实例代码
2016/02/29 Javascript
Bootstrap下拉菜单效果实例代码分享
2016/06/30 Javascript
JS字符串false转boolean的方法(推荐)
2017/03/08 Javascript
vue一步步实现alert功能
2017/07/05 Javascript
vue iview组件表格 render函数的使用方法详解
2018/03/15 Javascript
vue 引用自定义ttf、otf、在线字体的方法
2019/05/09 Javascript
js的Object.assign用法示例分析
2020/03/05 Javascript
vue-router为激活的路由设置样式操作
2020/07/18 Javascript
vue 判断两个时间插件结束时间必选大于开始时间的代码
2020/11/04 Javascript
[04:51]TI10典藏宝瓶Ⅱ外观视频展示
2020/08/15 DOTA
Python open读写文件实现脚本
2008/09/06 Python
pyramid配置session的方法教程
2013/11/27 Python
进一步了解Python中的XML 工具
2015/04/13 Python
python实现马耳可夫链算法实例分析
2015/05/20 Python
详谈Python基础之内置函数和递归
2017/06/21 Python
Python即时网络爬虫项目启动说明详解
2018/02/23 Python
在dataframe两列日期相减并且得到具体的月数实例
2018/07/03 Python
解决Python selenium get页面很慢时的问题
2019/01/30 Python
使用python将多个excel文件合并到同一个文件的方法
2019/07/09 Python
Flask框架学习笔记之路由和反向路由详解【图文与实例】
2019/08/12 Python
pyinstaller还原python代码过程图解
2020/01/08 Python
护士实习生自我鉴定范文
2013/12/10 职场文书
餐饮企业总经理岗位职责范文
2014/02/18 职场文书
教师节促销方案
2014/03/22 职场文书
生日宴会策划方案
2014/06/03 职场文书
庆祝教师节演讲稿
2014/09/03 职场文书
普通党员个人对照检查材料
2014/09/18 职场文书
离婚协议书范本2014
2014/10/27 职场文书
大学生创业事迹材料
2014/12/30 职场文书
人才市场接收函
2015/01/30 职场文书
高考学习决心书
2015/02/04 职场文书