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实现拼接多张图片的方法
Dec 01 Python
Python有序查找算法之二分法实例分析
Dec 11 Python
图解Python变量与赋值
Apr 03 Python
Python3内置模块pprint让打印比print更美观详解
Jun 02 Python
python的pytest框架之命令行参数详解(上)
Jun 27 Python
Python如何筛选序列中的元素的方法实现
Jul 15 Python
Python输出指定字符串的方法
Feb 06 Python
Python要如何实现列表排序的几种方法
Feb 21 Python
python连接mysql有哪些方法
Jun 24 Python
利用python汇总统计多张Excel
Sep 22 Python
pyqt5蒙版遮罩mask,setmask的使用
Jun 11 Python
python数字类型和占位符详情
Mar 13 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批量添加数据与批量更新数据的实现方法
2014/12/16 PHP
PHP中数据类型转换的三种方式
2015/04/02 PHP
PHP中应该避免使用同名变量(拆分临时变量)
2015/04/03 PHP
php从数据库查询结果生成树形列表的方法
2015/04/17 PHP
如何解决phpmyadmin导入数据库文件最大限制2048KB
2015/10/09 PHP
关于Yii中模型场景的一些简单介绍
2019/09/22 PHP
javascript import css实例代码
2008/07/18 Javascript
JS运行耗时操作的延时显示方法
2010/11/19 Javascript
JavaScript判断DOM何时加载完毕的技巧
2012/11/11 Javascript
js 获取、清空input type="file"的值(示例代码)
2013/12/24 Javascript
浅谈Node.js中的定时器
2015/06/18 Javascript
jquery插件jquery.dragscale.js实现拖拽改变元素大小的方法(附demo源码下载)
2016/02/25 Javascript
jQuery.Uploadify插件实现带进度条的批量上传功能
2016/06/08 Javascript
JavaScript必知必会(三) String .的方法来自何方
2016/06/08 Javascript
JS处理数据四舍五入(tofixed与round的区别详解)
2017/10/26 Javascript
微信小程序开发背景图显示功能
2018/08/08 Javascript
bootstrap table合并行数据并居中对齐效果
2018/10/17 Javascript
微信内置浏览器图片查看器的代码实例
2019/10/08 Javascript
JS实现简单打字测试
2020/06/24 Javascript
js 数据类型判断的方法
2020/12/03 Javascript
使用Python对Excel进行读写操作
2017/03/30 Python
Django 使用Ajax进行前后台交互的示例讲解
2018/05/28 Python
python paramiko利用sftp上传目录到远程的实例
2019/01/03 Python
numpy中的ndarray方法和属性详解
2019/05/27 Python
浅析Python3 pip换源问题
2020/01/06 Python
Python实现加密接口测试方法步骤详解
2020/06/05 Python
豪华复古化妆:Besame Cosmetics
2019/09/06 全球购物
优秀广告词大全
2014/03/19 职场文书
教师个人读书活动总结
2014/07/08 职场文书
新婚姻法离婚协议书范文
2014/11/30 职场文书
2015年度销售个人工作总结
2015/03/31 职场文书
环保建议书作文300字
2015/09/14 职场文书
Python答题卡识别并给出分数的实现代码
2021/06/22 Python
36个正则表达式(开发效率提高80%)
2021/11/17 Javascript
windows11怎么查看wifi密码? win11查看wifi密码的技巧
2021/11/21 数码科技
mysql拆分字符串作为查询条件的示例代码
2022/07/07 MySQL