python网络爬虫(第九章:存储爬虫数据)

1.数据库存储概述

爬虫的数据存储方式:
1.存储到本地
2.存储到数据库(常见的数据库:MySQL和MangoDB)

2.MangDB数据库概述

MangDB数据库功能:

1.模式自由:可将不同结构的文档存储在同一个数据库中
2. 面向集合的存储:适合JSON文件风格的形式
3.完整的索引支持
4.复制和高可用性
5.自动分片
6.丰富的查询
7.快速就地更新
8.高效的传统存储方式

2.1MangDB数据在Wins系统下的安装

  1. 下载官网:https://www.mongodb.com/download-center#community

  2. 安装:使用下图【修改安装路径】
    在这里插入图片描述
    在这里插入图片描述
    3.添加路径: Path【F:\MangDB4.4.8\bin】

4.创建数据库文件的存放位置
在安装路径MangDB4.4.8\data文件夹中新建子文件夹db【F:\MangDB4.4.8\data\db】

5.配置本地Windows mongodb服务【实现开机自启动】

在MangDB4.4.8安装根目录下新建配置文件【mongo.config】,其中该文件位置同bin目录同级
	# 数据库路径
mongodb.config配置内容如下:
dbpath=F:\MangDB4.4.8\data\db
# 日志输出文件
logpath=F:\MangDB4.4.8\log\mongod.log
# 错误日志是否追加
#logappend=true
# 启用日志文件
journal=true
# 过滤无用日志
quiet=true
port=27017

6.运行代码:【管理员方式运行cmd】
在这里插入图片描述

Win+R—>cmd—>:

mongod --dbpath F:\MangDB4.4.8\data\db

同时在浏览器中输入:http://localhost:27017

7.安装MongoDB服务:
以管理员身份打开cmd,输入:

mongod --dbpath "F:\MangDB4.4.8\data\db" --logpath "F:\MangDB4.4.8\log\mongod.log" --install --serviceName "MongoDB"

1.若中间出现问题,则必须先删除服务:sc delete MongoDB,之后再输入上述命令
2.Win+R 输入:services.msc查看MongoDB服务是否开启

常用命令:
启动MongoDB服务器:net start MongoDB
若想关闭:net stop MongoDB

如果下次使用:

1.使用管理员方式打开cmd
2.输入net start MongoDB
3.使用。如:show dbs

3.实例

安装: pip install pymongo

import requests
from time import sleep
from pymongo import *
from lxml import etree
from pymongo import MongoClient

header = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36'
}

client = MongoClient()   #创建连接
db = client.spider   #访问数据库spider  #如果没有spider数据库,则会自动创建该数据库
collection = db.moive250    #创建集合   集合在MySQL中对应的是table

def douban(url):
    page_text = requests.get(url=url,headers=header).text

    #解析具体网页
    tree = etree.HTML(page_text)
    li_list = tree.xpath('//*[@id="content"]/div/div[1]/ol/li')
    # print(li_list)

    for li in li_list:

        page_url = li.xpath('./div/div[2]/div[1]/a/@href')[0]

        #详情页面处理
        page_text = requests.get(url=page_url,headers=header).text

        trees = etree.HTML(page_text)

        #电影名称
        movie_name = trees.xpath('//*[@id="content"]/h1/span[1]/text()')[0]

        #豆瓣评分:
        movie_score = trees.xpath('//*[@id="interest_sectl"]/div[1]/div[2]/strong/text()')[0]

        dic = {
            'movie_name':movie_name,
            'movie_score':movie_score,
            'movie_url':page_url,
        }
        collection.insert_one(dic)
        print(dic)


def main():

    for i in range(0,2):
        full_url = 'https://movie.douban.com/top250?start=' + str(i*25)
        print('完整的url:',full_url)
        douban(full_url)
        # 根据条件查找数据库MongoDB
        cursor = collection.find({'movie_score':'9.3'})
        for doc in cursor:
            print(doc)

if __name__ == '__main__':
    main()
    print('完成!!!')

MongoDB使用步骤:

1.导包:from pymongo import MongoClient
2.创建对象:client = MongoClient() #client = MongoClient(‘localhost’,27017)
3.创建数据库:db = client.spyder #spyder为数据库名称
4.创建集合:collection = db.insert_one(data_dict)

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值