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

时间:2022-09-05 15:34:13

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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的扩展)。

*可通过网络访问。

实例扩展:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# 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的资料请关注服务器之家其它相关文章!

原文链接:https://www.py.cn/spider/guide/18441.html