爬取斗破苍穹小说 Python 代码
介绍
网络爬虫是一种自动获取互联网上数据的方法。本文将介绍如何使用 Python 编写一个简单的小说爬虫,以爬取《斗破苍穹》小说内容为例。
准备工作
在开始编写爬虫之前,我们需要进行一些准备工作。
首先,我们需要安装 Python 的 requests 和 BeautifulSoup 库,这两个库都是常用于网络爬虫的工具。可以使用以下命令来安装这两个库:
pip install requests
pip install beautifulsoup4
然后,我们需要找到《斗破苍穹》小说的网站。在本文中,我们将使用笔趣阁(
爬取小说内容
首先,我们需要获取小说的章节列表。根据笔趣阁的网页结构,章节列表位于一个类名为 "listmain" 的 div 元素下面的 ul 和 li 元素中。
import requests
from bs4 import BeautifulSoup
def get_chapter_list():
url = "
response = requests.get(url)
response.encoding = 'utf-8'
soup = BeautifulSoup(response.text, 'html.parser')
chapter_list = []
for li in soup.find("div", class_="listmain").find_all("li"):
chapter_url = url + li.a["href"]
chapter_title = li.a.string
chapter_list.append((chapter_title, chapter_url))
return chapter_list
上述代码中,我们使用 requests 库发送一个 GET 请求获取网页的 HTML 内容,然后使用 BeautifulSoup 库解析 HTML 内容。最后,我们通过查找 div 元素的 class 为 "listmain" 的元素,找到章节列表中的 ul 元素,并遍历 li 元素获取每个章节的标题和链接。
接下来,我们可以根据章节列表,逐个爬取每个章节的内容。
def get_chapter_content(chapter_url):
response = requests.get(chapter_url)
response.encoding = 'utf-8'
soup = BeautifulSoup(response.text, 'html.parser')
content = soup.find("div", id="content").text
return content
在上述代码中,我们先发送一个 GET 请求获取章节的 HTML 内容,然后使用 BeautifulSoup 库解析 HTML 内容。通过查找 id 为 "content" 的 div 元素,我们可以获取章节的内容。
最后,我们可以将章节列表和内容写入到本地文件中。
def save_novel(chapter_list):
with open("novel.txt", "w", encoding="utf-8") as f:
for chapter_title, chapter_url in chapter_list:
content = get_chapter_content(chapter_url)
f.write(chapter_title + "\n")
f.write(content + "\n\n")
print("小说已保存到 novel.txt 文件中")
上述代码中,我们使用 with 语句打开一个名为 "novel.txt" 的文件,并使用 UTF-8 编码写入章节标题和内容。
运行爬虫
现在,我们可以运行爬虫并爬取《斗破苍穹》小说了。
if __name__ == "__main__":
chapter_list = get_chapter_list()
save_novel(chapter_list)
将上述代码保存到一个名为 "spider.py" 的文件中,然后在命令行窗口中运行以下命令:
python spider.py
爬虫将会开始运行,爬取《斗破苍穹》小说的章节列表和内容,并保存到 "novel.txt" 文件中。
总结
本文介绍了如何使用 Python 编写一个简单的小说爬虫,以爬取《斗破苍穹》小说为例。我们使用了 requests 库发送 HTTP 请求,使用 BeautifulSoup 库解析 HTML 内容,并将爬取到的章节列表和内容保存到本地文件中。
使用网络爬虫有一些法律和道德上的限制,请确保你有合法的使用权限,并遵守相关的法