前言
《天才基本法》看完了,听说对原著改编很大,准备找原著看看。(文末送读者福利)
以前学过一点儿python,《天才基本法》剧里多次推崇python让我又燃起热情复习了一下,正好就有了这个任务:python爬取《天才基本法》原著小说,然后导入到kindle等电纸书设备阅读。
由于长时间不用有些生疏,捣鼓了两小时才成功,python真是简练的语言,算上空行代码也没有50行!
首先搜索“天才基本法在线阅读”找到某个网站,你也可以直接使用我下面代码里那个网址。然后下载目录页的章节列表,最后逐个下载章节合并成一个txt文本文件。
先写一个根据网址获取html源码的通用函数。
def 获取网页源码(url):
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36"
}
try:
r = requests.get(url=url, headers=headers)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text # 返回网页源码
except:
print('网页地址访问失败')
return '获取失败'
看到一篇文章说python支持中文函数和变量名称,这样写真棒!几乎不用注释了。
# 开始爬取目录
目录地址 = 'https://wwwxxxxx.com/book/tiancaijibenfa.html'
目录源码 = 获取网页源码(目录地址)
章节地址和名称列表 = []
源码解析器 = BeautifulSoup(目录源码, 'lxml')
目录代码 = 源码解析器.select('div > ul> li') # 层级选择
for 章节 in 目录代码:
if 章节.text=='':
continue
章节地址 = 章节.find('a').attrs['href']
章节名称 = 章节.a.string
章节地址和名称列表.append([章节地址, 章节名称])
print('章节列表下载成功!')
# 按照章节顺序下载章节内容并保存到文件
电子书文件 = open('天才基本法.txt', 'a', encoding="utf-8")
for 章节 in 章节地址和名称列表:
章节地址 = 章节[0]
章节名称 = 章节[1]
章节源码解析器 = BeautifulSoup(获取网页源码(章节地址), 'lxml')
本章内容代码 = 章节源码解析器.find('div', id='htmlContent')
本章内容文本 = 本章内容代码.text
电子书文件.write(章节名称 + 本章内容文本 + "\n")
print(章节名称 + ' 下载成功。')
电子书文件.close()
print('大功告成!')
因为有200多页,运行了大约5分钟才结束。
用多线程可以加速,但我还不会,会的请指教一下。
另外有个小问题没有解决,在这里请教一下。小说源码中有许多空格和网页换行,如:
“ 想到这里,林朝夕的手机铃声响了。<br><br> 她硬着头皮,赶忙接起”
,我使用 “本章内容代码.text” 忽略过去,但是这样就没有换行了,想进行替换:
本章内容文本 = 本章内容代码.replace("<br>","\n")
但又提示 “TypeError: ‘NoneType’ object is not callable”,请问怎么办?

读者福利:知道你对Python感兴趣,便准备了这套python学习资料
对于0基础小白入门:
如果你是零基础小白,想快速入门Python是可以考虑的。
一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以找到适合自己的学习方案
零基础Python学习资源介绍
👉Python学习路线汇总👈
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取哈)

👉Python必备开发工具👈

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末
👉Python学习视频600合集👈
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

👉实战案例👈
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

👉100道Python练习题👈
检查学习结果。
👉面试刷题👈



资料领取
上述这份完整版的Python全套学习资料已经上传优快云官方,朋友们如果需要可以微信扫描下方优快云官方认证二维码输入“领取资料” 即可领取

好文推荐
了解python的前景:https://blog.youkuaiyun.com/SpringJavaMyBatis/article/details/127194835
了解python能做什么:https://blog.youkuaiyun.com/SpringJavaMyBatis/article/details/127196603
Python爬取《天才基本法》原著:从零入门到电纸书阅读
3514

被折叠的 条评论
为什么被折叠?



