Python爬虫新手入门教学(二):爬取小说

42 篇文章 69 订阅
订阅专栏

前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。

Python爬虫、数据分析、网站开发等案例教程视频免费在线观看

https://space.bilibili.com/523606542

前文

Python爬虫新手入门教学(一):爬取豆瓣电影排行信息

基本开发环境

  • Python 3.6
  • Pycharm

相关模块的使用

  • requests
  • parsel

安装Python并添加到环境变量,pip安装需要的相关模块即可。

Python爬虫新手入门教学(一):爬取小说

 

单章爬取

Python爬虫新手入门教学(一):爬取小说

 

一、明确需求

爬取小说内容保存到本地

  • 小说名字
  • 小说章节名字
  • 小说内容
# 第一章小说url地址
url = 'http://www.biquges.com/52_52642/25585323.html'
url = 'http://www.biquges.com/52_52642/25585323.html'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'
}
response = requests.get(url=url, headers=headers)
print(response.text)

Python爬虫新手入门教学(一):爬取小说

 


请求网页返回的数据中出现了乱码,这就需要我们转码了。

加一行代码自动转码。

response.encoding = response.apparent_encoding

Python爬虫新手入门教学(一):爬取小说

 

三、解析数据

Python爬虫新手入门教学(一):爬取小说

 


根据css选择器可以直接提取小说标题以及小说内容。

def get_one_novel(html_url):
    # 调用请求网页数据函数
    response = get_response(html_url)
    # 转行成selector解析对象
    selector = parsel.Selector(response.text)
    # 获取小说标题
    title = selector.css('.bookname h1::text').get()
    # 获取小说内容 返回的是list
    content_list = selector.css('#content::text').getall()
    # ''.join(列表) 把列表转换成字符串
    content_str = ''.join(content_list)
    print(title, content_str)


if __name__ == '__main__':
    url = 'http://www.biquges.com/52_52642/25585323.html'
    get_one_novel(url)

Python爬虫新手入门教学(一):爬取小说

 

四、保存数据(数据持久化)

使用常用的保存方式: with open

def save(title, content):
    """
    保存小说
    :param title: 小说章节标题
    :param content: 小说内容
    :return: 
    """
    # 路径
    filename = f'{title}\\'
    # os 内置模块,自动创建文件夹
    if os.makedirs(filename):
        os.mkdir()
    # 一定要记得加后缀 .txt  mode 保存方式 a 是追加保存  encoding 保存编码
    with open(filename + title + '.txt', mode='a', encoding='utf-8') as f:
        # 写入标题
        f.write(title)
        # 换行
        f.write('\n')
        # 写入小说内容
        f.write(content)

Python爬虫新手入门教学(一):爬取小说

 

Python爬虫新手入门教学(一):爬取小说

 


保存一章小说,就这样写完了,如果想要保存整本小说呢?

整本小说爬虫

既然爬取单章小说知道怎么爬取了,那么只需要获取小说所有单章小说的url地址,就可以爬取全部小说内容了。

Python爬虫新手入门教学(一):爬取小说

 


所有的单章的url地址都在 dd 标签当中,但是这个url地址是不完整的,所以爬取下来的时候,要拼接url地址。

def get_all_url(html_url):
    # 调用请求网页数据函数
    response = get_response(html_url)
    # 转行成selector解析对象
    selector = parsel.Selector(response.text)
    # 所有的url地址都在 a 标签里面的 href 属性中 
    dds = selector.css('#list dd a::attr(href)').getall()
    for dd in dds:
        novel_url = 'http://www.biquges.com' + dd
        print(novel_url)


if __name__ == '__main__':
    url = 'http://www.biquges.com/52_52642/index.html'
    get_all_url(url)

Python爬虫新手入门教学(一):爬取小说

 


这样就获取了所有的小说章节url地址了。

爬取全本完整代码

import requests
import parsel
from tqdm import tqdm


def get_response(html_url):
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'
    }
    response = requests.get(url=html_url, headers=headers)
    response.encoding = response.apparent_encoding
    return response


def save(novel_name, title, content):
    """
    保存小说
    :param title: 小说章节标题
    :param content: 小说内容
    :return:
    """
    filename = f'{novel_name}' + '.txt'
    # 一定要记得加后缀 .txt  mode 保存方式 a 是追加保存  encoding 保存编码
    with open(filename, mode='a', encoding='utf-8') as f:
        # 写入标题
        f.write(title)
        # 换行
        f.write('\n')
        # 写入小说内容
        f.write(content)


def get_one_novel(name, novel_url):
    # 调用请求网页数据函数
    response = get_response(novel_url)
    # 转行成selector解析对象
    selector = parsel.Selector(response.text)
    # 获取小说标题
    title = selector.css('.bookname h1::text').get()
    # 获取小说内容 返回的是list
    content_list = selector.css('#content::text').getall()
    # ''.join(列表) 把列表转换成字符串
    content_str = ''.join(content_list)
    save(name, title, content_str)


def get_all_url(html_url):
    # 调用请求网页数据函数
    response = get_response(html_url)
    # 转行成selector解析对象
    selector = parsel.Selector(response.text)
    # 所有的url地址都在 a 标签里面的 href 属性中
    dds = selector.css('#list dd a::attr(href)').getall()
    # 小说名字
    novel_name = selector.css('#info h1::text').get()
    for dd in tqdm(dds):
        novel_url = 'http://www.biquges.com' + dd
        get_one_novel(novel_name, novel_url)


if __name__ == '__main__':
    novel_id = input('输入书名ID:')
    url = f'http://www.biquges.com/{novel_id}/index.html'
    get_all_url(url)

Python爬虫新手入门教学(一):爬取小说

 

Python爬虫新手入门教学(一):爬取小说

入门Python爬虫:使用Scrapy框架爬取小说教程及代码实例
python03011的博客
11-15 3674
相信学Python爬虫的小伙伴听说过Scrapy框架,也用过Scrapy框架。今天我们边学习Scrapy框架边爬取整部小说,让大家在不知不觉的学习过程中使用Scrapy框架完成整部小说爬取~Scrapy框架是一个基于Twisted的异步处理框架,是纯Python实现的爬虫框架,是提取结构性数据而编写的应用框架,其架构清晰,模块之间的耦合程度低,可扩展性极强,我们只需要少量的代码就能够快速抓取数据。
利用Python爬虫抓取小说网站全部文章
sinat_32092165的博客
11-26 4341
我们先来选定爬取目标,我爬取的网站是https://www.17k.com/,一些大型的网站(如起点、豆瓣等)做了反爬虫的部署,这会大大增加我们抓取的难度,所以尽量还是选一些不那么热门的网站。 爬虫的第一步,也是最重要的一步,就是分析网页的结构,定位到我们想要抓取的内容。首先点开一本书的某一章节,这里以小说《第九特区》的第一章《初来乍到》为例展开(https://www.17k.com/chapter/3038645/38755562.html),分析某一章的页面内容结构。 首先来看标题,这个非常.
python爬虫实战——小说爬取
热门推荐
cuc_pyx技术小站
05-21 2万+
基于requests库和lxml库编写的爬虫,目标小说网站域名http://www.365kk.cc/,类似的小说网站殊途同归,均可采用本文方法爬取
python爬取网络小说,看这一篇就够了
Tom_Jerry__的博客
10-15 4436
代码的主要内容就是通过单个章节的链接获取到回复,之后找到居中格式的div ,获取其中的文本就是先说内容 这个时候我们将其写入到txt中,知道完成下载,其中延时是必须的,防止影响网站运行,从而导致踩缝纫机的风险。滤除第一种的时候,我们只需要将章节这个也加入判断即可,滤除第种错误数据我们就需要强行固定序列了,比如我们强行让它从第一章开始。需要导入的第三方包有两个,是requests和BeautifulSoup,其中一个是用于网页请求的,一个是网页解析的。我们发现其中还是有两个我们不想要的数据。
Python爬取小说网站总推荐排行榜所有小说~
2401_83641314的博客
04-21 474
filename = ‘D:\python\demo\电子书下载\小说\’ + title + ‘.txt’合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!相关模块 pip 安装即可。
Python之XPath实现小说爬取
起风了
01-24 5942
XPath介绍 XPath 即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。 XPath节点操作 XPath语法 它使用路径表达式来选取 XML 文档中的节点或节点集。节点是通过沿着路径 (path) 或者步 (steps) 来选取的。 下面列出了最有用的路径表达式: 实例 用谓语来查找某个特定的节点或者包含某个指定的值的节点,嵌在方括号中。...
小白学 Python 爬虫(25):爬取股票信息
12-22
小白学 Python 爬虫(3):前置准备()Linux基础入门 小白学 Python 爬虫(4):前置准备(三)Docker基础入门 小白学 Python 爬虫(5):前置准备(四)数据库基础 小白学 Python 爬虫(6):前置准备(五)爬虫...
python 爬虫实战案例:爬取网易云音乐评价 源码
最新发布
04-30
本实战案例将展示如何使用Python编写一个简单的网络爬虫,用于爬取网易云音乐上的歌曲评价。案例将涉及发送HTTP请求、解析网页内容以及数据提取的基本技术。 适用人群 编程初学者:希望通过实际项目学习网络爬虫的...
Python爬虫案例1:爬取淘宝网页数据
10-27
淘宝网页爬虫代码以及爬取的芒果、草莓、鸭舌帽数据excel文件
Python爬虫入门:如何爬取招聘网站并进行分析
06-13
python爬虫实操干货,一分钟了解全国行业工资水平,适合新手,数据抓取、清洗、结果分析一步到位,快快行动起来
python爬虫新手入门爬取小说代码详解
weixin_37856170的博客
06-27 1877
详细的代码和注释帮助新手练习简单的小说python爬取
利用Python爬取小说(附源码)
python03013的博客
06-10 1435
利用Python爬取小说(附源码)
Python小说爬虫,有目录,有文字极简处理,还有IP解锁方式!
爬遍所有网站
08-04 706
至于我为什么发这么火,原因如下: 朋友的小说全部放在文件夹中,就是一章一个text文本, 没有目录的存在,而且目录章节混乱,我大致看了下,第五章就跳到第七章了, 中间的不知道怎么没了。 打开小说一看, 密密麻麻挤着一起,没有一点段落感,而且还有一些html代码,没有处理干净,最重要的,居然还有一大批网址在里面,简直就是不走心 第三,爬取小说根本就不能算一整本,我看了一下文件数量,足足少了十多章,我评价到看个鬼,你自己看看能不能行 ! 朋友看完,自己也很无语,至于他为什么会出现这种情况,我想很多爬
Python 爬取网页小说
mycsdn的博客
10-01 658
(5)将提取内容存入 TXT 文档中,其中需要注意存放章节内容时,第一个 p 标签内容为广告,需要跳过(所有的 p 标签内容按顺序存入 context 数组中,context 长度等于 p 标签个数)(4)查看各章节间的跳转关系,最后一章的下一章是列表页面。(1)查看网页编码格式,在 head 标签里能找到。的 div 中的 h1 标签里,采用正则提取。的 div 中的 p 标签里,采用正则提取。章节名存放在 class 为。(3)查看章节内容存放位置。章节内容存放在 id 为。(2)查看章节名存放位置。
Python爬虫第一战 爬取小说
libaiup的博客
03-23 1356
独立做出爬取小说爬虫利用Python取得所要信息利用Python筛选出特定信息如果你毫无 Python 基础,可以看看我亲自写的关于 Python 的基础专栏,这样子理解本文会更加轻松,当然你要是只想了解爬虫的过程,不关注具体的代码实现,那可以不用具备 Python 基础知识。当今互联网实在是丰富多彩,网络上的Python教程更是数不胜数,我承认自己比不过那些大V,但是我认为自己的教程的优势是:通俗易懂,贴近初学者的水平。
Python3网络爬虫--爬取有声小说(附源码)
懷淰メ的博客
12-22 2810
在第个class为book的div标签中能得到小说简介、作者、播音。本次分析了一个有声小说网站,重点在于分析其小说详情页、音频播放地址,加密方式判断。思路、代码方面有什么不足欢迎各位大佬指正、批评!
python爬虫小说爬取
qq_46540840的博客
04-17 5809
python爬虫小说爬取前言拿到一个网站最重要的就是分析分析提取每一个链接的内容2.读入数据内容处理有了一个链接里面的小说内容就可以扩展到所有标签的内容了完整代码结果及总结 前言 练习一下爬虫过程,就在网上随便找了一个小说网站 那就第一个吧,让我开始快乐的爬取 拿到一个网站最重要的就是分析分析 F12 大法最为好用 拿这一周最火的小说为例 点开之后就是小说内容了,还有下一篇上一篇的链接,我们先找到所有内容的链接目录,方便列出所有链接 那我们拿到了所有的 li 标签就是存链接内容的 放在一个块元素里
python爬取酷狗音乐源码_python爬虫教程:爬取酷狗音乐
09-08
您可以使用 Python 的 requests 库和 BeautifulSoup 库来爬取酷狗音乐的数据。下面是一个简单的示例代码: ```python import requests from bs4 import BeautifulSoup def get_song_list(keyword): url = f'https://www.kugou.com/yy/html/search.html#searchType=song&searchKeyWord={keyword}' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36' } response = requests.get(url, headers=headers) soup = BeautifulSoup(response.text, 'html.parser') song_list = [] songs = soup.select('.songName') for song in songs: song_name = song.get('title') song_list.append(song_name) return song_list # 使用示例 keyword = '周杰伦' song_list = get_song_list(keyword) for song_name in song_list: print(song_name) ``` 这段代码会通过关键字搜索酷狗音乐,并返回匹配的歌曲列表。您可以根据自己的需求进一步提取歌曲的其他信息或下载链接。请注意,爬取网站数据需要遵守网站的相关规定,不要过度请求或滥用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • Python制作自动填写脚本,100%准确率 39338
  • Python实现多功能音乐播放器 29545
  • Python制作一个私人的简易聊天器,邀请ta来激情的聊天吧,搭建UDP网络通信模型 25703
  • Python可视化:matplotlib 绘制堆积柱状图绘制 24491
  • Python控制自己的手机摄像头拍照,并把照片自动发送到邮箱 21906

分类专栏

  • 爬虫 302篇
  • 数据分析入门 27篇
  • Python案例教学 47篇
  • 数据分析 221篇
  • Python爬虫入门 28篇
  • 爬虫入门案例 42篇
  • Python基础 5篇
  • 开发 34篇
  • Python web开发 9篇
  • Python爬虫 requests教学 5篇
  • scrapy框架 6篇

最新评论

  • python爬虫爬取2020年中国大学排名

    2401_82374401: 请问你的问题解决了吗,我现在也有点急

  • 用Python采集【去哪了】旅游景点攻略,可视化分析旅游出行数据

    ID203_104: 求源代码拜托!表情包

  • Python数据分析项目讲解:分析世界五百强企业数据

    伊利丹·怒风68: 网上可以搜到,比较多类似的

  • Python数据分析项目讲解:分析世界五百强企业数据

    w3123036818: 你好,你现在有数据源了吗?可以分享一下嘛,实训周救救孩子吧

  • 使用Python爬虫和数据可视化,揭示人口大国历年人数的变迁

    lcw8848: 你的这些代码就没有一个是完整的

大家在看

  • 电商场景下,AI 真的懂你的购物意图吗? 221

最新文章

  • 8天长假快来了,Python分析【去哪儿旅游攻略】数据,制作可视化图表
  • Python实现自动登录+获取数据
  • 20亿票房但不好看?Python分析《孤注一掷》豆瓣评论数据
2023年24篇
2022年41篇
2021年189篇
2020年583篇

目录

目录

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

聚圣源生辰八字起的名字免费测试健康吴江武汉韩国领事馆2020年属猪起名起名五行缺木缺水起名工具杉德万通卡海螵蛸的功效与作用五行生水的字免费起名使命召唤8下载乡村基加盟费网游起名字低调有内涵卫生间门价格大秦帝国之纵横电视剧写给龙凤胎宝宝起名字女孩起名13画的字亦怎么起名起名叠字仙朝起名字诗意男鼠小儿起名字大全激光科技公司起名公司起名网 免费通灵王国语版全集ip代理免费版起名网免费打分测试名字打分100分x7760.net上善若水下一句在线起名免费取名英文充电站公司起名淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化