Python爬虫自学笔记:爬取小说(一)

Python爬虫自学笔记:爬取小说(一)

首页角色扮演遮天Q传更新时间:2024-11-19
1 功能说明

爬取小说目录和章节内容,并将章节内容下载到本地txt文件中。

2 开发环境及准备工作

开发环境:Python3和PyCharm;

准备工作:安装requests库和beautifulsoup4库。

在PyCharm中安装第三方库,具体操作见下图:

在搜索框中分别输入requests和beautifulsoup4进行安装。

注意:要选择beautifulsoup4,而不是BeautifulSoup,因为BeautifulSoup对应的是Python2的开发环境,Python3对应的则是beautifulsoup4。

3 网站介绍及分析

以免费小说全文阅读网站(http://www.quanwenyuedu.io/)为例,爬取该网站上面的小说。通过快捷键F12,可以调出当前网页的源码信息,分析相关源码。

首先看小说目录页面,通过点击蓝色边框内的箭头,再点击左侧页面中要了解的信息,在右侧就会出现相关的源码信息。

下面看章节内容页面,发现小说具体章节内容在代码<div class="articlebody" id="content">......</div>中。

4 编码思路

1) 提供小说目录页的url;

2) 爬取目录页面信息;

3) 提取目录页面中小说的名称、作者、具体章节的名称和网址信息;

4) 根据提取到的章节网址(一般为相对路径网址),结合目录页网址进行分析,合成绝对路径的章节网址;

5) 爬取小说章节网页内的正文内容,将其保存到本地txt文件中;

6) 循环小说章节网址,依次爬取下载保存到本地。

5 代码实现

完整代码如下:

# 爬取小说 v1.0 import requests from bs4 import BeautifulSoup import time url = "http://www.quanwenyuedu.io/n/zhetian/xiaoshuo.html" # 爬取url网址内容 def get_url(url): headers = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0", "Accept":"text/html,application/xhtml xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "Accept-Encoding":"gzip, deflate, sdch", "Accept-Language":"zh-CN,zh;q=0.8", "Cache-Control":"max-age=0", "Connection":"keep-alive"} r = requests.get(url,headers = headers) soup = BeautifulSoup(r.text,"html.parser") return soup # 获取小说名称和作者 soup = get_url(url) title = soup.h1.text author = soup.find_all("p")[1].text[3:] chapter_list = soup.find_all("li") for i in chapter_list: # 获取小说章节名称和网址 i_url = i.a.get("href") chapter_url = url[:-13] i_url chapter_name = i.text # 获取小说章节内容 chapter_soup = get_url(chapter_url) content = chapter_soup.find_all("p") # 将章节内容写入txt文件 print(chapter_name " 正在下载......") for c in content: with open(title "_" author ".txt","a") as f: f.write(c.text "\n") print(chapter_name " 下载完成") time.sleep(2)

代码运行效果如下:

6 代码问题汇总

1) 在调试代码爬取网站信息的过程中,会出现爬取不到内容的情况,是由网站反爬虫设计导致的结果,临时解决办法是在控制面板中,先禁用本地连接再启用本地连接,即断网再联网,可暂时避免;

2) 下载的小说txt文件中,前面一百多章节内容无问题,后面章节内容则出现"您无权查看此目录或页面。"的内容,也是网址反爬虫设计导致的结果。

解决思路:(尚未尝试,以待试验)

7 相关学习知识点

1) requests库:官方文档https://requests.readthedocs.io/en/master/

2) BeautifulSoup库:官方文档

https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html

3) 代码注释

4) 多行一起缩进

选中代码,按tap键。

5) 文件读写代码

with open("data.txt","a") as f: f.write(c.text "\n")

8 结束语

本次代码只是实现了简单的爬取下载功能,离真正无问题爬取小说下载还有一段路要走,将此次编码的过程及问题分享出来给大家,供初学者参考。

对于上述出现的问题,有大神路过的可以指点一下,不胜感激。

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved