爬取电子书通常涉及以下步骤:
获取目录
使用`requests`库发送HTTP请求获取网页内容。
使用`BeautifulSoup`解析HTML,找到包含目录信息的`div`标签。
提取目录信息,通常在`id="category"`的`div`标签下。
获取书籍列表页
根据目录信息构造URL,再次发送请求获取书籍列表页。
解析列表页,提取每本书的标题和链接。
获取书籍详情页
根据书籍列表页中的链接,构造URL请求书籍详情页。
解析详情页,提取书籍的下载链接。
分析资源地址
在详情页中找到电子书的下载链接。
提取下载链接,可能包含书籍编号或其他参数。
下载并保存
使用`requests`库根据提取的下载链接发送请求下载电子书。

保存下载的电子书到本地指定路径。
形成索引文件(可选):
将下载的书籍信息(如标题、作者、下载链接等)保存到JSON或CSV文件中,便于查找和管理。
import requestsfrom bs4 import BeautifulSoupimport 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//"主页URLmain_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'}).ulfor 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}")这里可以添加代码获取书籍列表页并解析然后对每本书籍进行下载
请注意,实际爬取时可能需要处理登录验证、反爬虫机制、动态加载内容等问题。此外,请确保爬取行为符合网站的使用条款和法律法规,以及尊重版权。
