真棒啊!Python 可以爬取大量免费小说!

发布时间:2024年01月14日

大家好!今天给你们带来了用requests编写的网页小说爬取工具。可以轻松爬取小说名和下载链接,仅供学习!

因反爬虫策略和网页会经常调整,可能会出现代码失灵的情况,如遇到问题,可以文末找我们交流。

代码案例:

import requests
from bs4 import BeautifulSoup
import urllib.parse

def get_novels(url, page_count):
    #发送GET请求获取页面内容
    response = requests.get(url)
    content = response.content.decode('gbk')

    #使用BeautifulSoup解析HTML
    soup = BeautifulSoup(content, 'html.parser')

    #查找所有符合条件的元素
    elements = soup.select('.pldal_r1_bt a')

    #使用一个集合保存已经处理过的链接和小说名
    processed_links = set()

    #遍历输出文本和链接
    for element in elements:
        # 获取小说名
        novel_name = element.text.strip()

        #获取li中a标签的链接
        href = element['href']
        if '/book/' not in href:
            continue
        
        link_response = requests.get(urllib.parse.urljoin(url, href))
        link_content = link_response.content.decode('gbk')
        link_soup = BeautifulSoup(link_content, 'html.parser')
        
        #获取下载链接
        #download_element = link_soup.select_one('.dl_link_bd li a')
        if download_element:
            download_link = urllib.parse.urljoin(url, download_element['href'])
        else:
            download_element = link_soup.select_one('.dl_link_bd div a')
            if download_element:
                download_link = urllib.parse.urljoin(url, download_element['href'])
            else:
                download_link = "链接未找到"
            
        #判断链接和小说名是否已经处理过
        if (novel_name, download_link) in processed_links:
            continue
        
        #将链接和小说名添加到已处理集合中
        processed_links.add((novel_name, download_link))

        print(f"小说名:{novel_name}")
        print(f"下载链接:{download_link}")
    #获取下一页链接
    #next_page_link = None
    #next_page_element = soup.find('a', string='下一页')
    #if next_page_element:
        #next_page_link = urllib.parse.urljoin(url, next_page_element['href'])
    
    #继续爬取后续页数的小说名和链接
    if page_count > 1 and next_page_link:
        get_novels(next_page_link, page_count - 1)

#爬取页数
page_count = 2
#链接设置
start_url = 'http://www.12z.cn/book/dushiyule/'
#开始
get_novels(start_url, page_count)
输出
小说名:《从笑星走向巨星》(校对版全本)
下载链接:http://www.12z.cn/plus/download.php?open=2&id=137&uhash=174cb03a1a79050f076804ab
小说名:[都市娱乐]
下载链接:链接未找到
小说名:《地府重临人间》(校对版全本)
下载链接:http://www.12z.cn/plus/download.php?open=2&id=126&uhash=2e3d1b01e4b29f7ccd7565e4
小说名:《神级巫医在都市》(校对版全本)
下载链接:http://www.12z.cn/plus/download.php?open=2&id=125&uhash=98ae6a3b72e9d485b64e5326
小说名:《终极教官》(校对版全本)
下载链接:http://www.12z.cn/plus/download.php?open=2&id=121&uhash=b48cdc8554488e739f5af8b5
小说名:《仙界网络直播间》(校对版全本)
下载链接:http://www.12z.cn/plus/download.php?open=2&id=120&uhash=09061038f69398d1b83551e5
小说名:《老婆是武林盟主》(校对版全本)
下载链接:http://www.12z.cn/plus/download.php?open=2&id=279&uhash=0fcf6a3d0800257139dc1fff
小说名:《夜的命名术》(校对版全本)
下载链接:http://www.12z.cn/plus/download.php?open=2&id=6902&uhash=593f27fca4d78e4040e5b6b3
小说名:《重生2011》(校对版全本)
下载链接:http://www.12z.cn/plus/download.php?open=2&id=6900&uhash=fdf80b6d9412f6d720280622
小说名:《我已不做大佬好多年》(校对版全本)
下载链接:http://www.12z.cn/plus/download.php?open=2&id=6896&uhash=3bf78814f52f8f39b723cd9e
小说名:[都市娱乐]
下载链接:链接未找到
小说名:《重生之似水流年》(校对版全本)
下载链接:http://www.12z.cn/plus/download.php?open=2&id=6880&uhash=48162b5465d2f63976c51a5d
小说名:《重生之金融巨头》(校对版全本)
下载链接:http://www.12z.cn/plus/download.php?open=2&id=6877&uhash=9aac2f935cb1b980656add7f
小说名:《平常人类的平凡生活》(校对版全本)
下载链接:http://www.12z.cn/plus/download.php?open=2&id=6876&uhash=7eff5a03a6cc70ffac282042
小说名:《从冒牌大学开始》(校对版全本)
下载链接:http://www.12z.cn/plus/download.php?open=2&id=6862&uhash=5fd229aa605fad0dfddd4f39
小说名:《寻宝从英伦开始》(校对版全本)
下载链接:http://www.12z.cn/plus/download.php?open=2&id=6851&uhash=52e3a3c78a2f87ec225a1af9
小说名:《无敌从仙尊奶爸开始》(校对版全本)
下载链接:http://www.12z.cn/plus/download.php?open=2&id=6840&uhash=1deaeef764535f9403b8f8e7
小说名:《超级农业强国》(校对版全本)
下载链接:http://www.12z.cn/plus/download.php?open=2&id=6837&uhash=04df41735193ff7dff5ecf45

技术交流

技术要学会分享、交流,不建议闭门造车。一个人可以走的很快、一堆人可以走的更远。

技术交流、资料干货、数据&源码,均可加交流群获取,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友。

方式①、微信搜索公众号:Python学习与数据挖掘,后台回复: 交流
方式②、添加微信号:dkl88194,备注:来自CSDN +交流

毕设/大作业系列

文章来源:https://blog.csdn.net/m0_59596937/article/details/135581084
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。