Scrapy框架基础与MongoDB基本理论

概要

  • 爬虫框架之Scrapy

  • 非关系型数据库之MongoDB

 


详细

  • 爬虫框架之Scrapy

框架:别人提前写好的具有一定功能的基本架构。 Scrapy是使用频率最高并且功能最完善的网络爬虫框架。

1、下载Scrapy框架
pip3 install scrapy
# Windows系统可能会报错并且无明显的关键字,需做如下配置
    1.pip3 install wheel
    2.https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted
    3.pip3 install 步骤2文件路径
    4.pip3 install pywin32
    5.pip3 install scrapy
2、验证Scrapy是否下载成功
    Windows命令行终端输入scrapy即可

Scrapy基本使用

1.创建一个项目
scrapy startproject 项目名
自动生成一个有多个.py文件及文件夹的文件夹

2.创建爬虫文件(命令在项目根目录下执行,文件在spiders目录下)
scrapy genspider 网站名 网站域名
自动创建.py文件并预先生成一定代码,方便管理

3.执行爬虫文件
scrapy runspider 文件名
scrapy crawl 文件名

Scrapy文件结构

项目名文件夹
    与项目名同名的文件夹
        spiders文件夹
            存放爬虫项目文件
        settings.py # 配置文件
        items.py    # 数据存储相关文件
        middlewares.py # 中间件文件
        pipelines.py # 数据存储相关文件,一般和items.py配合使用


  • 非关系型数据库之MongoDB

MongoDB概念

# 特点
存储数据的量和处理时间较于关系型数据库快很多
是大数据生态圈里面常用的一款软件
是一款最像关系型数据库的非关系型数据库(文本结构)
​
# 横向扩展与纵向扩展
以提升计算机性能为例
横向:购置多台计算机组合使用(企业常用)
纵向:不断优化单个计算机(个人)
​
# 为了方便,可以用MySQL术语称呼MongoDB
MySQL       MongoDB
database    database    库
table       collection  集合
row         document    文档
column      field       字段

 

MongoDB下载与安装

1.下载.msi文件双击即可
    https://www.mongodb.com/try/download/community
2.文件结构
    bin     # 启动文件
        mongod.exe  服务端
        mongo.exe   客户端
    data    # 数据文件
    log     # 日志文件

启动步骤

1、双击下载的.msi文件

  一定不能勾选Import MongoDB Compass,会特别慢 !!!
2、查看mongodb文件夹内是否含有data和log文件夹
    如果没有需要你自己手动创建
    如果有则直接跳过
3、在data文件内创建db文件夹(为了管理文件资源)
4、将启动文件所在的路径添加到环境变量中
5、在MongoDB文件夹根目录下,创建mongod.cfg文件并在该文件内拷贝以下代码
        systemLog:
            destination: file
            path: "D:\MongoDB\log\mongod.log"
            logAppend: true
        storage:
           journal:
              enabled: true
           dbPath: "D:\MongoDB\data\db"
        net:
           bindIp: 0.0.0.0
           port: 27017
        setParameter:
           enableLocalhostAuthBypass: false
6、系统服务制作
mongod --bind_ip 0.0.0.0 --port 27017 --logpath D:\MongoDB\log\mongod.log --logappend --dbpath D:\MongoDB\data\db --serviceName "MongoDB" --serviceDisplayName "MongoDB" --install --
auth     auth即让服务端以校验用户身份的方式启动 不加则不校验
7、启动/关闭服务 net start MongoDB net stop MongoDB
8、登录
    mongo

  • MongoDB基本操作

一、基础命令

MongoDB中语句不需要使用分号结尾。

1.查看所有的数据库名称
show dbs # 关系型数据库中为show databases;
'''默认有三个库 admin、config、local 显示已占用的大小'''

2.退出客户端
exit   # 关系型数据库中为exit();
quit() # 关系型数据库中为quit();

MongoDB的特性在于无需可以创建东西,指定即可使用。但是只有在真正用到了该东西之后才会保存到硬盘!!!在此之前都是在内存中临时创建。

二、针对库的增删改查
1.查看
show dbs
# 关系型数据库中为show databases;

2.新增
use db1 
# 关系型数据库中为create database db1; 写入数据才会保存至硬盘,否则只在内存中

3.修改 # 忽略

4.删除
先写入数据db.db1.insert({'name':'jason'})
db.dropDatabase() 
# 关系型数据库中为drop database db1; db为关键字,删除当前库

三、针对集合(表)的增删改查

MySQL中先有库才能有表(table);同理,MongoDB中先有库才有集合(collection)。

1.新增
db.createCollection('表名') # 直接保存至硬盘
db.collection名 # 不插入数据则只在内存临时创建

2.查看
show collections
show tables # 照顾习惯使用关系型数据库的用户

3.修改 # 忽略

4.删除
db.collection名.drop()

四、针对文档(记录)的增删改查
1.新增
db.collection名.insert({}) # 单条数据
db.collection名.insert([{},{},{}]) # 多条数据
db.collection名.insertMany([{},{},{}])

2.查看
db.collection名.find()     # 关系型数据库中为 select * from collection名
db.collection名.find({'name':'Leoric'}) # 关系型数据库中为 select * from collection名 where name='Leoric';

3.修改
db.collection名.update({'name':'Leoric'},{$set:{'name':'Leo'}}) # 修改
db.collection名.update({'name':'jasonNB'},{'name':'jason666'}) # 替换(少用)

4.删除
db.collection名.remove({})  # 关系型数据库中为 delete from collection名;
db.collection名.remove({'name':'Leo'})    # 关系型数据库中为 delete from collection名 where name='Leo';

 

posted @ 2021-10-08 15:29  Leguan001  阅读(55)  评论(0)    收藏  举报