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当中的数据类型和变量
Apr 25 Python
python3.0 模拟用户登录,三次错误锁定的实例
Nov 02 Python
在Python程序员面试中被问的最多的10道题
Dec 05 Python
Python3.4解释器用法简单示例
Mar 22 Python
Django1.11自带分页器paginator的使用方法
Oct 31 Python
windows中安装Python3.8.0的实现方法
Nov 19 Python
Python+numpy实现矩阵的行列扩展方式
Nov 29 Python
Python实现把多维数组展开成DataFrame
Nov 30 Python
python多线程使用方法实例详解
Dec 30 Python
python Tensor和Array对比分析
Jan 08 Python
Python 高效编程技巧分享
Sep 10 Python
Python 实现定积分与二重定积分的操作
May 26 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 之 没有mysql支持时的替代方案
2006/10/09 PHP
PHP5 面向对象(学习记录)
2009/12/02 PHP
php中如何使对象可以像数组一样进行foreach循环
2013/08/09 PHP
php通过分类列表产生分类树数组的方法
2015/04/20 PHP
PHP SPL标准库之接口(Interface)详解
2015/05/11 PHP
PHP简单检测网址是否能够正常打开的方法
2016/09/04 PHP
Laravel事件监听器用法实例分析
2019/03/12 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
jquery Tab效果和动态加载的简单实例
2013/12/11 Javascript
js实现日历可获得指定日期周数及星期几示例分享(js获取星期几)
2014/03/14 Javascript
jQuery时间插件jquery.clock.js用法实例(5个示例)
2016/01/14 Javascript
原生JavaScript实现动态省市县三级联动下拉框菜单实例代码
2016/02/03 Javascript
mvvm双向绑定机制的原理和实现代码(推荐)
2016/06/07 Javascript
DIV+CSS+jQ实现省市联动可扩展
2016/06/22 Javascript
手机端图片缩放旋转全屏查看PhotoSwipe.js插件实现
2016/08/25 Javascript
JavaScript 深层克隆对象详解及实例
2016/11/03 Javascript
Vue项目自动转换 px 为 rem的实现方法
2018/10/29 Javascript
Angular刷新当前页面的实现方法
2018/11/21 Javascript
javascript贪吃蛇游戏设计与实现
2020/09/17 Javascript
CentOS 8.2服务器上安装最新版Node.js的方法
2020/12/16 Javascript
[01:45]典藏宝瓶2+祈求者身心——这就是DOTA2TI9总奖金突破3000万美元的秘密
2019/07/21 DOTA
[03:08]TI9战队档案 - Vici Gaming
2019/08/20 DOTA
python3中int(整型)的使用教程
2017/03/23 Python
使用python itchat包爬取微信好友头像形成矩形头像集的方法
2019/02/21 Python
python3下载抖音视频的完整代码
2019/06/05 Python
python中sort和sorted排序的实例方法
2019/08/26 Python
python手机号前7位归属地爬虫代码实例
2020/03/31 Python
Python OpenCV去除字母后面的杂线操作
2020/07/05 Python
Selenium关闭INFO:CONSOLE提示的解决
2020/12/07 Python
举例详解HTML5中使用JSON格式提交表单
2015/06/16 HTML / CSS
英国家具、照明、家居用品网上商店:Wayfair.co.uk
2020/02/13 全球购物
函授本科毕业自我鉴定
2013/10/09 职场文书
装饰工程师岗位职责
2014/06/08 职场文书
jQuery class属性操作addClass()与removeClass()、hasClass()、toggleClass()
2021/03/31 jQuery
python基础之//、/与%的区别详解
2022/06/10 Python
Nginx如何限制IP访问只允许特定域名访问
2022/07/23 Servers