Python 是一门广泛应用于网页数据爬取的语言,其中最为常见的是用 Python 爬取小说。相比较于手动翻页与复制粘贴,Python 爬虫可以帮你轻轻松松地获取整本小说,极大提升了效率。那么,我们来看看 Python 爬取小说的详细过程。
首先,我们需要确认要爬取的小说网站。在确定网站后,我们可以通过 requests 库获得小说某一页的 HTML 代码,如下:
import requests url = 'https://www.xxxx.com/novel/12345.html' response = requests.get(url) html = response.text print(html)
接下来,我们需要解析这个 HTML,以获得小说的内容。我们可以使用 BeautifulSoup 库进行解析。在获取到 HTML 后,我们可以使用 BeautifulSoup 进行解析,如下:
from bs4 import BeautifulSoup soup = BeautifulSoup(html, 'html.parser') novel_content = soup.find('div', {'class': 'content'}).text print(novel_content)
解析完每一页的小说内容后,我们需要将其保存到本地文件中。可以使用 Python 的文件操作方式将小说内容写入到本地 TXT 文件中,如下:
with open('novel.txt', 'a') as f: f.write(novel_content)
最后,我们需要将爬虫代码封装在一个循环中,从第一页开始一直进行到最后一页,直到小说结束。在这个循环中,需要注意加入一些休眠时间,避免频繁请求引起小说网站的反爬虫机制。以下是完整的 Python 爬虫代码:
import requests from bs4 import BeautifulSoup import time novel_url = 'https://www.xxxx.com/novel/12345.html' total_page = 100 for page in range(total_page): url = novel_url + '?page={}'.format(page) response = requests.get(url) html = response.text soup = BeautifulSoup(html, 'html.parser') novel_content = soup.find('div', {'class': 'content'}).text with open('novel.txt', 'a') as f: f.write(novel_content) time.sleep(1)
通过以上步骤,就可以轻松地用 Python 爬取小说了。