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 相关文章推荐
Python3操作SQL Server数据库(实例讲解)
Oct 21 Python
人机交互程序 python实现人机对话
Nov 14 Python
使用Python微信库itchat获得好友和群组已撤回的消息
Jun 24 Python
Python2.7环境Flask框架安装简明教程【已测试】
Jul 13 Python
Python函数的参数常见分类与用法实例详解
Mar 30 Python
python中break、continue 、exit() 、pass终止循环的区别详解
Jul 08 Python
Django model 中设置联合约束和联合索引的方法
Aug 06 Python
python django 原生sql 获取数据的例子
Aug 14 Python
python 中Arduino串口传输数据到电脑并保存至excel表格
Oct 14 Python
解决django-xadmin列表页filter关联对象搜索问题
Nov 15 Python
win10安装python3.6的常见问题
Jul 01 Python
Python .py生成.pyd文件并打包.exe 的注意事项说明
Mar 04 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和ACCESS写聊天室(一)
2006/10/09 PHP
php公用函数列表[正则]
2007/02/22 PHP
PHP5 字符串处理函数大全
2010/03/23 PHP
PHP编码转换函数 自动转换字符集支持数组转换
2012/12/16 PHP
比较简单的百度网盘文件直链PHP代码
2013/03/24 PHP
解析php addslashes()与addclashes()函数的区别和比较
2013/06/24 PHP
dedecms集成财付通支付接口
2014/12/28 PHP
PHP编写的图片验证码类文件分享
2016/06/06 PHP
如何在Laravel之外使用illuminate组件详解
2020/09/20 PHP
javascript一点特殊用法
2008/05/28 Javascript
JQuery扩展插件Validate—4设置错误提示的样式
2011/09/05 Javascript
jquery ajax 调用失败的原因示例介绍
2013/09/27 Javascript
jQuery trigger()方法用法介绍
2015/01/13 Javascript
使用JavaScript制作一个简单的计数器的方法
2015/07/07 Javascript
web前端开发JQuery常用实例代码片段(50个)
2015/08/28 Javascript
基于JQuery实现分隔条的功能
2016/06/17 Javascript
神级程序员JavaScript300行代码搞定汉字转拼音
2017/05/20 Javascript
再谈Angular4 脏值检测(性能优化)
2018/04/23 Javascript
angularjs结合html5实现拖拽功能
2018/06/25 Javascript
从0搭建vue-cli4脚手架
2020/06/17 Javascript
Nest.js环境变量配置与序列化详解
2021/02/21 Javascript
Python栈类实例分析
2015/06/15 Python
python实现图书管理系统
2018/03/12 Python
Python提取频域特征知识点浅析
2019/03/04 Python
Python 使用list和tuple+条件判断详解
2019/07/30 Python
python pygame实现挡板弹球游戏
2019/11/25 Python
Python3 解决读取中文文件txt编码的问题
2019/12/20 Python
上海方立数码笔试题
2013/10/18 面试题
幼儿园中秋节活动反思
2014/02/16 职场文书
承诺书范文
2014/06/03 职场文书
2014年物业管理工作总结
2014/11/21 职场文书
小学英语教学随笔
2015/08/14 职场文书
攻略丨滑雪究竟该选哪款对讲机?
2022/02/18 无线电
python中的random模块和相关函数详解
2022/04/22 Python
Apache自带的ab压力测试工具的实现
2022/07/23 Servers
python语言中pandas字符串分割str.split()函数
2022/08/05 Python