环境:pycharm3.6 mysql django
爬虫解析方式:bs4 +正则
爬取小说的网站: 笔下文学网 https://www.bxwxorg.com/
需求:获取玄幻、武侠、都市、历史 四类所有小说的信息 ,包括6个字段(book_id,小说名,小说作者,小说简介,小说最近更新时间,小说海报)
一、分析uirl:

点击进入玄幻类,发现共有50页 ,每页30本小说,点击第二页 url发生变化:

通过页数传递了参数 ,再来分析源代码

然后再随便打开了一本小说 分析源代码 :

发现是通过传递这本书的book_id 获取这本书的具体信息 ,于是要获得4个类的所有小说的信息,那么前提是要获得所有小说的book_id,再用book_id来逐个获取需要字段的信息。
二、爬虫代码实现
2.1 几次探索发现 所有类(玄幻、武侠等)的小说的第一页存储小说的class id == 和后面的n页是不相同的,这意味着第一页和后面的response不能用一种方法来解析,所以我先处理了所有小说类的第一页 ,然后在同时处理其他类的n页。
spider代码如下:
import requests

本文介绍了使用Python的bs4和正则表达式爬取笔下文学网上的玄幻、武侠、都市、历史四类小说信息,包括书名、作者、简介等六项数据,并存储到MySQL数据库。在爬取过程中,遇到HTTP连接错误和数据库主键冲突问题,通过设置请求超时、捕获异常和调整数据库设计来解决。接下来将利用Django框架构建搜索界面。
最低0.47元/天 解锁文章
1726

被折叠的 条评论
为什么被折叠?



