如何实现Python爬虫将数据保存至MongoDB的实例方法?

2026-05-21 22:163阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计627个文字,预计阅读时间需要3分钟。

如何实现Python爬虫将数据保存至MongoDB的实例方法?

将伪原创内容改写如下:

将爬虫数据存储至MongoDB的方法:导入pymongo库。

爬虫数据保存到mongoDB的方法:

importpymongo #首先需要注意,mongodb数据库存储的类型是以键值对类型进行存储,所以在存储以前一定要进行数据筛选 defsave_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的扩展)。

如何实现Python爬虫将数据保存至MongoDB的实例方法?

*可通过网络访问。

实例扩展:

# 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 = 'readfree.me/shuffle/?page=1' urls = getpages(url,3) for each in urls: spider(each)

以上就是python爬虫数据保存到mongoDB的实例方法的详细内容,更多关于爬虫数据如何保存到mongoDB的资料请关注易盾网络其它相关文章!

标签:实例

本文共计627个文字,预计阅读时间需要3分钟。

如何实现Python爬虫将数据保存至MongoDB的实例方法?

将伪原创内容改写如下:

将爬虫数据存储至MongoDB的方法:导入pymongo库。

爬虫数据保存到mongoDB的方法:

importpymongo #首先需要注意,mongodb数据库存储的类型是以键值对类型进行存储,所以在存储以前一定要进行数据筛选 defsave_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的扩展)。

如何实现Python爬虫将数据保存至MongoDB的实例方法?

*可通过网络访问。

实例扩展:

# 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 = 'readfree.me/shuffle/?page=1' urls = getpages(url,3) for each in urls: spider(each)

以上就是python爬虫数据保存到mongoDB的实例方法的详细内容,更多关于爬虫数据如何保存到mongoDB的资料请关注易盾网络其它相关文章!

标签:实例