python怎么爬取小说_python爬取全网PDF书籍

python怎么爬取小说_python爬取全网PDF书籍爬取电子书通常涉及以下步骤 获取目录 使用 requests 库发送 HTTP 请求获取网页内容 使用 BeautifulSou 解析 HTML 找到包含目录信息的 div 标签 提取目录信息 通常在 id category 的 div 标签下 获取书籍列表页 根据目录信息构造 URL 再次发送请求获取书籍列表页 解析列表页 提取每本书的标题和链接 获取书籍详情页

爬取电子书通常涉及以下步骤:

获取目录

使用`requests`库发送HTTP请求获取网页内容。

使用`BeautifulSoup`解析HTML,找到包含目录信息的`div`标签。

提取目录信息,通常在`id="category"`的`div`标签下。

获取书籍列表页

根据目录信息构造URL,再次发送请求获取书籍列表页。

解析列表页,提取每本书的标题和链接。

获取书籍详情页

根据书籍列表页中的链接,构造URL请求书籍详情页。

解析详情页,提取书籍的下载链接。

分析资源地址

在详情页中找到电子书的下载链接。

提取下载链接,可能包含书籍编号或其他参数。

下载并保存

使用`requests`库根据提取的下载链接发送请求下载电子书。

保存下载的电子书到本地指定路径。

形成索引文件(可选):

将下载的书籍信息(如标题、作者、下载链接等)保存到JSON或CSV文件中,便于查找和管理。

python

import requests

from bs4 import BeautifulSoup

import os

设置请求头

headers = {

'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'

}

保存路径

savepath = "J://kgbook//books//"

主页URL

main_url = "https://kgbook.com/"

获取目录

def get_category():

req_result = requests.get(main_url, headers=headers)

if req_result.status_code == 200:

html_str = req_result.content.decode('utf-8')

soup = BeautifulSoup(html_str, 'lxml')

categorys = soup.find_all(attrs={'id': 'category'}).ul

for li in categorys.find_all('li'):

yield li.text

下载并保存电子书

def download_book(url, path):

response = requests.get(url, headers=headers)

if response.status_code == 200:

with open(os.path.join(path, url.split("/")[-1]), 'wb') as f:

f.write(response.content)

主程序

if __name__ == "__main__":

os.makedirs(savepath, exist_ok=True)

for category in get_category():

print(f"正在处理目录:{category}")

这里可以添加代码获取书籍列表页并解析

然后对每本书籍进行下载

请注意,实际爬取时可能需要处理登录验证、反爬虫机制、动态加载内容等问题。此外,请确保爬取行为符合网站的使用条款和法律法规,以及尊重版权。

编程小号
上一篇 2026-04-18 11:16
下一篇 2026-04-18 11:12

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://sigusoft.com/bj/55622.html