1. 爬虫思路

我们要爬取的是起点小说网站的小说内容,因此我们需要先找到小说的阅读页面,然后通过分析页面结构和网络请求,获取小说的章节内容。

具体步骤如下:

打开起点小说网站,搜索要爬取的小说,进入小说的阅读页面析页面结构,获取小说的每个章节的链接,通过网络请求获取每个章节的内容解析章节内容,提取出小说正文将小说正文保存到本地文件中。

2. 实现过程

2.1 导入库

我们需要导入requests库和BeautifulSoup库来完成爬虫任务。

import requests

from bs4 import BeautifulSoup

 

2.2 获取小说章节链接

 

我们可以通过搜索小说名称,进入小说的阅读页面,然后分析页面结构,获取小说的章节链接。下面是一个示例代码:

# 搜索小说并进入阅读页面

url = 'https://www.qidian.com/search?kw=' + keyword

response = requests.get(url)

soup = BeautifulSoup(response.text, 'html.parser')

book_url = soup.select_one('div.book-img-box > a')['href']

book_url = 'https:' + book_url

 

# 获取小说章节链接

response = requests.get(book_url)

soup = BeautifulSoup(response.text, 'html.parser')

chapter_list = soup.select('div.volume > ul > li > a')

 

chapter_urls = []

for chapter in chapter_list:

    chapter_url = 'https:' + chapter['href']

    chapter_urls.append(chapter_url)

 

2.3 获取章节内容

 

得到章节链接后,我们可以直接访问链接获取章节内容。下面是一个示例代码:

response = requests.get(chapter_url)

soup = BeautifulSoup(response.text, 'html.parser')

 

# 提取小说正文

content = soup.select_one('div.read-content').get_text()

 

2.4 保存小说内容

获取到小说正文后,我们可以将其保存到本地文件中。下面是一个示例代码:

# 保存小说内容

filename = 'novel.txt'

with open(filename, 'a', encoding='utf-8') as f:

    f.write(content)

    f.write('\n\n')

 

3. 完整代码

import requests

from bs4 import BeautifulSoup

 

# 搜索小说并进入阅读页面

keyword = '斗破苍穹'

url = 'https://www.qidian.com/search?kw=' + keyword

response = requests.get(url)

soup = BeautifulSoup(response.text, 'html.parser')

book_url = soup.select_one('div.book-img-box > a')['href']

book_url = 'https:' + book_url

 

# 获取小说章节链接

response = requests.get(book_url)

soup = BeautifulSoup(response.text, 'html.parser')

chapter_list = soup.select('div.volume > ul > li > a')

 

chapter_urls = []

for chapter in chapter_list:

    chapter_url = 'https:' + chapter['href']

    chapter_urls.append(chapter_url)

 

# 获取章节内容并保存

filename = 'novel.txt'

for chapter_url in chapter_urls:

    response = requests.get(chapter_url)

    soup = BeautifulSoup(response.text, 'html.parser')

 

    # 提取小说正文

    content = soup.select_one('div.read-content').get_text()

 

    # 保存小说内容

    with open(filename, 'a', encoding='utf-8') as f:

        f.write(content)

        f.write('\n\n')

 

4. 总结

 

本文介绍了如何用Python爬取起点小说网站的小说内容。具体步骤包括搜索小说、获取小说章节链接、获取章节内容和保存小说内容。通过本文的学习,读者可以掌握基本的爬虫技能,更好地利用Python抓取网络数据。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐