python保存数据db_python爬虫数据保存到mongoDB的实例方法

爬虫数据保存到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的资料请关注脚本之家其它相关文章!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值