爬虫框架之Scrapy与数据库之MongoDB

目录

  • 爬虫框架之Scrapy

  • Scrapy基本使用

  • Scrapy文件介绍

  • MongoDB数据库

  • MongoDB重要概念

  • MongoDB下载与安装

  • 启动步骤

  • 基础命令

  • 针对库的增删改查

  • 针对集合的增删改查

  • 针对文档的增删改查

 

爬虫框架之Scrapy

#框架
别人提前给你搭建好了基本架构 具备了一定的功能

Scrapy是网络爬虫中使用频率最高功能最为完善的框架

下载scrapy框架

pip3 install scrapy

'''mac本一般直接下载即可 但是windows电脑可能会出错'''

解决措施

1.pip3 install wheel

 

 2.https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted去这个地址下载一个.whl结尾的配置文件

 

 3.文件的存放位置如何明确

pip3 install 文件名 # 通过报错信息查看存放位置

 

 4.pip3 install pywin32

 

 5.pip3 install scrapy

 

 6.验证scrapy是否下载成功

windows命令行cmd终端内输入scrapy即可

 

 

Scrapy基本使用

1.创建一个项目

scrapy startproject 项目名

'''自动生成一个内部含有多个py文件及文件夹的文件夹'''

 

 2.创建爬虫文件

scrapy genspider jd www.jd.com

'''自动创建py文件并填写一定的代码 方便统一管理'''

3.执行爬虫文件

scrapy runspider jd.com

scrapy crawl jd

 

 

 

Scrapy文件介绍

项目名文件夹
    项目名同名的文件夹
        spiders文件
            存放爬虫项目文件

 

 1.settings.py 配置文件

"""ROBOTS.TXT爬虫协议"""

 

 2.items.py  数据存储相关的文件

 

 3.middlewares.py  中间件文件

在一个完整的操作流程中可以穿插多个小的操作步骤

4.pipelines.py  数据存储相关的文件

 

 

MongoDB数据库

1.该数据库存储数据的量和处理时间较于关系型数据库快很多
2.该数据库也是大数据生态圈里面常用的一款软件
3.该数据库是一款最像关系型数据库的非关系型数据库(文本结构)

小知识:横向扩展与纵向扩展

# 以提升计算机性能为例
    横向扩展:买来多台计算机组合使用(企业)
    纵向扩展:就在一台计算机上面不停的优化(个人)

MongoDB重要概念

# 为了理解方便 可使用MySQL的名词来称呼
database     database        库
table        collection      集合
row          document        文档
column       field           字段

MongoDB下载与安装

1.进入官网:https://www.mongodb.com/try/download/community
2.下载msi文件即可
详细步骤网址:https://www.runoob.com/mongodb/mongodb-window-install.html

 

 mongodb文件介绍

1.bin文件夹
    '''里面存放一堆启动文件'''
    mongod.exe    服务端
    mongo.exe   客户端
2.data文件夹
    '''里面存放数据相关文件'''
3.log文件夹
    '''里面存放日志相关文件'''

启动步骤

1.查看mongodb文件夹内是否含有data和log文件夹

如果没有需要你自己手动创建
如果有则直接跳过

2.在data文件内创建db文件夹

目的是为了管理文件资源

 

 

3.将启动文件所在的路径添加到环境变量中

 

 

4.在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
View Code
5.系统服务制作

在终端输入以下命令:

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即让服务端以校验用户身份的方式启动 不加则不校验'''
View Code

6.启动\关闭

net start MongoDB
net stop MongoDB

7.登录

mongo

基础命令

1.查看所有的数据库名词

show dbs  # show databases;

 

 2.退出客户端

exit  # exit();
quit()  # quit();

补充

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

针对库的增删改查

1.查看

show dbs  

2.新增

use db1  # 现在内存中自动创建 如果db1内写入了数据那么才会刷到硬盘中

3.修改

4.删除

先插入数据  db.db1.insert({'name':'ben'})

db.dropDatabase()  # db是关键字 当前在哪个库下执行改命令就是删除哪个库

 

 

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

# 相当于MySQL中的表的概念
要想操作collection必须先有database

1.增

db.createCollection('表名')

db.collection名字  # 如果单纯的创建不插入数据 那么也只是在内存临时创建

 

 2.查

show tables
show collections

3.改

4.删

db.collection名字.drop()

 

针对文档(记录)增删改查

1.增

db.t1.insert({})  # 单条数据
    
db.t1.insertMany([{},{},{}])  # 多条数据

2.查

db.t1.find()     # select * from t1;
db.t1.find({'name':'ben'})  # select * from t1 where name='ben';

3.改

db.t1.update({'name':'jason'},{$set:{'name':'jasonNB'}})  

替换修改

db.t1.update({'name':'jason'},{'name':'jasonNB'})

4.删

db.t1.remove({})      # delete from t1;
db.t1.remove({'name':'ben'})   # delete from t1 where name='ben';

 

posted @ 2021-10-08 22:33  陌若安然  阅读(388)  评论(0)    收藏  举报