Python Scrapy库爬虫——爬取当当网书籍
实现爬虫获得豆瓣书籍信息存入数据库中,学习记录
- 根据分类获取书籍信息,包括书籍名字、作者、出版社、出版日期、价格等信息
- 根据书籍类别存入数据库
完整爬取步骤
一. 设计数据库结构
二. 分析当当网页结构
三. 编写Spider类,抽取关键内容
四. 编写ItemPipeline实现保存数据数据到数据库
五. 开始爬取
一.数据库设计
- 主表books保存书籍信息
- Authors保存作者信息
- types保存书籍的类别信息
- comment保存书籍的评论等信息
books
CREATE TABLE books
(
book_tag VARCHAR(100) NOT NULL #book标识符,唯一主键
PRIMARY KEY,
a_tag VARCHAR(100) NULL, #作者标识符,Authors表外键
t_type VARCHAR(100) NULL, #类型标识符,types表外键
b_name VARCHAR(100) NULL, #书籍名称
publishing_company VARCHAR(100) NULL, #出版社
time DATE NULL, #出版时间
star_level INT NULL, #星级
price FLOAT(8, 2) NULL, #价格
isbn VARCHAR(20) NULL, #isbn
brief VARCHAR(1000) NULL, #描述
info LONGTEXT NULL, #简要信息
link VARCHAR(100) NULL, #链接
CONSTRAINT FK_Relationship_1
FOREIGN KEY (a_tag) REFERENCES Authors (a_tag)
ON UPDATE CASCADE
ON DELETE CASCADE,
CONSTRAINT FK_Relationship_2
FOREIGN KEY (t_type) REFERENCES types (t_type)
ON UPDATE CASCADE
ON DELETE CASCADE
)
ENGINE = InnoDB;
CREATE INDEX FK_Relationship_1
ON books (a_tag);
CREATE INDEX FK_Relationship_2
ON books (t_type);
Authors
CREATE TABLE Authors
(
a_tag VARCHAR(100) NOT NULL #作者标识符,唯一主键
PRIMARY KEY,
a_name VARCHAR(100) NULL, #作者名称
a_info TEXT NULL #作者信息
)
ENGINE = InnoDB;
types
CREATE TABLE types
(
t_type VARCHAR(100) NOT NULL #类型标识符,唯一主键
PRIMARY KEY,
t_name VARCHAR(100) NULL #类型的中文标志 ,like 计算机>>算法
)
ENGINE = InnoDB;
comment
CREATE TABLE comment
(
c_id