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通过DOM和SAX方式解析XML的应用实例分享
Nov 16 Python
python运行时间的几种方法
Jun 17 Python
python 链接和操作 memcache方法
Mar 04 Python
python数据封装json格式数据
Mar 04 Python
Python3 SSH远程连接服务器的方法示例
Dec 29 Python
win10系统下python3安装及pip换源和使用教程
Jan 06 Python
用Python做一个久坐提醒小助手的示例代码
Feb 10 Python
pycharm通过anaconda安装pyqt5的教程
Mar 24 Python
Django实现前台上传并显示图片功能
May 29 Python
Python如何操作docker redis过程解析
Aug 10 Python
pandas 按日期范围筛选数据的实现
Feb 20 Python
python实战之用emoji表情生成文字
May 08 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 模拟登陆MSN并获得用户信息
2009/05/16 PHP
有关PHP中MVC的开发经验分享
2012/05/17 PHP
一个简单的php加密解密函数(动态加密)
2013/06/19 PHP
PHP PDOStatement::fetchAll讲解
2019/01/31 PHP
JS中confirm,alert,prompt函数使用区别分析
2010/04/01 Javascript
JavaScript 比较时间大小的代码
2010/04/24 Javascript
从零开始学习jQuery (六) jquery中的AJAX使用
2011/02/23 Javascript
JS异常处理的一个想法(sofish)
2013/03/14 Javascript
用jquery存取照片的具体实现方法
2013/06/30 Javascript
JavaScript动态修改网页元素内容的方法
2015/03/21 Javascript
cookie的secure属性详解
2015/04/08 Javascript
jQuery替换textarea中换行的方法
2015/06/10 Javascript
jQuery实现网站添加高亮突出显示效果的方法
2015/06/26 Javascript
BootStrap中的table实现数据填充与分页应用小结
2016/05/26 Javascript
基于jquery实现弹幕效果
2016/09/29 Javascript
js正则表达式注册页面表单验证
2016/10/11 Javascript
javascript基础知识讲解
2017/01/11 Javascript
浅谈在vue中用webpack打包之后运行文件的问题以及相关配置方法
2018/02/21 Javascript
vue弹窗组件的实现示例代码
2018/09/10 Javascript
Vue拖拽组件列表实现动态页面配置功能
2019/06/17 Javascript
使用axios请求接口,几种content-type的区别详解
2019/10/29 Javascript
js仿淘宝放大镜效果
2020/12/28 Javascript
[50:05]VGJ.S vs OG 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
python字典多条件排序方法实例
2014/06/30 Python
Python科学计算之Pandas详解
2017/01/15 Python
Python中跳台阶、变态跳台阶与矩形覆盖问题的解决方法
2018/05/19 Python
python+pyqt5实现KFC点餐收银系统
2019/01/24 Python
基于Python打造账号共享浏览器功能
2019/05/30 Python
Python SSL证书验证问题解决方案
2020/01/13 Python
jupyter notebook 实现matplotlib图动态刷新
2020/04/22 Python
J2EE的优越性主要表现在哪些方面
2016/03/28 面试题
保安拾金不昧表扬信
2014/01/15 职场文书
雷锋的故事观后感
2015/06/10 职场文书
2016预备党员培训心得体会
2016/01/08 职场文书
2016读书月活动心得体会
2016/01/14 职场文书
python基于opencv批量生成验证码的示例
2021/04/28 Python