目标
- 获取全本小说网的小说封面
- 保存封面图片到mongo数据库中
- 记录封面图片对应的小说信息
分析
- 本次使用requests作为http请求工具
- 获取小说封面的方式采用爬虫分类型、分页爬去小说封面地址
- 向图片的原地址发送http的get请求,获取response的content就是图片的二进制数据了
- 本次存储图片的方式并采用系统自带的文件系统,而是使用mongodb的GridFS
- 将步骤3中的content数据put到gridfs中获取文件id
- 从步骤2中获取小说的名称等信息,与步骤5中的id做映射,保存到novel集合集中
注:步骤6在是可以将小说的其他信息一同保存至gridfs的files集合中的,使用方法会在代码中进行注释
示例
import requests
from bs4 import BeautifulSoup
import pymongo
import gridfs
import time
client = pymongo.MongoClient("localhost", 27017)
db = client.test
fs = gridfs.GridFS(db, "images")
def save_pic_to_disk():
"""
将数据库中文件转存到本地文件系统
:return: 无
"""
fss = fs.find()
for fl in fss:
print(fl.md5)
tp_file = open('d:/img/' + fl.md5 + '.jpg',