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实现TCP协议下的端口映射功能的脚本程序示例
Jun 14 Python
python 循环while和for in简单实例
Aug 16 Python
python 连接各类主流数据库的实例代码
Jan 30 Python
python最小生成树kruskal与prim算法详解
Jan 17 Python
详解如何减少python内存的消耗
Aug 09 Python
python实现大学人员管理系统
Oct 25 Python
python圣诞树编写实例详解
Feb 13 Python
Pycharm 安装 idea VIM插件的图文教程详解
Feb 21 Python
opencv 查找连通区域 最大面积实例
Jun 04 Python
python 模拟登陆163邮箱
Dec 15 Python
python实现银行账户系统
Feb 22 Python
python绘制云雨图raincloud plot
Aug 05 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
CodeIgniter针对数据库的连接、配置及使用方法
2016/03/03 PHP
PHP给文字内容中的关键字进行套红处理
2016/04/12 PHP
php根据年月获取当月天数及日期数组的方法
2016/11/30 PHP
PHP中ltrim()函数的用法与实例讲解
2019/03/28 PHP
javascript 计算两个整数的百分比值
2009/12/26 Javascript
原生javascript获取元素样式属性值的方法
2010/12/25 Javascript
onkeypress字符按键兼容所有浏览器使用介绍
2013/04/24 Javascript
js 日期比较相关天数代码
2014/04/02 Javascript
jQuery中iframe的操作(点击按钮新增窗口)
2016/04/20 Javascript
解决AjaxFileupload 上传时会出现连接重置的问题
2017/07/07 Javascript
js获取css的各种样式并且设置他们的方法
2017/08/22 Javascript
vue router 配置路由的方法
2018/07/26 Javascript
微信网页授权并获取用户信息的方法
2018/07/30 Javascript
vue实现表单录入小案例
2019/09/27 Javascript
微信小程序scroll-view点击项自动居中效果的实现
2020/03/25 Javascript
react 生命周期实例分析
2020/05/18 Javascript
解决Vue 移动端点击出现300毫秒延迟的问题
2020/07/21 Javascript
原生js+css实现tab切换功能
2020/09/17 Javascript
原生JS实现京东查看商品点击放大
2020/12/21 Javascript
[03:14]辉夜杯主赛事 12月25日每日之星
2015/12/26 DOTA
Python使用os模块和fileinput模块来操作文件目录
2016/01/19 Python
Python实现Smtplib发送带有各种附件的邮件实例
2017/06/05 Python
pandas.cut具体使用总结
2019/06/24 Python
flask的orm框架SQLAlchemy查询实现解析
2019/12/12 Python
python飞机大战pygame游戏之敌机出场实现方法详解
2019/12/17 Python
python读取csv文件指定行的2种方法详解
2020/02/13 Python
在echarts中图例legend和坐标系grid实现左右布局实例
2020/05/16 Python
python常量折叠基础知识点讲解
2021/02/28 Python
平面设计专业大学生职业规划书
2014/03/12 职场文书
2014年十一国庆向国旗敬礼寄语
2014/04/11 职场文书
外语系毕业生求职自荐信
2014/04/12 职场文书
经济信息系毕业生自荐信
2014/06/02 职场文书
农林经济管理专业自荐信
2014/09/01 职场文书
2014党员四风对照检查材料思想汇报
2014/09/17 职场文书
2014年办公室工作总结范文
2014/11/12 职场文书
工作自我评价范文
2019/03/21 职场文书