一、准备工作
第一步,先查看一下python3是否有requests 和 BeautifulSoup4 这两个模块
1) 在命令行中输入python, 进入编辑模式
2) 输入下面指令:
import requests
from bs4 import BeautifulSoup
如果报错了, 请在有网络的环境在控制台下使用下面的命令
pip install requests
pip install BeautifulSoup4
第二步,选定好您要准备爬去的小说网站:
每个网站都有不同的代码书写风格,当风格没确定好时,就有可能出现代码错误的情况,在这里我选择的是笔趣阁小说网站: https://www.biquge5200.com/
ps: 不是打广告不是打广告不是打广告!
之后,选择一本想要观看的小说(在笔趣阁里没有提供下载服务), 在这个教程里面我要下载的是 耳根的小说–一念永恒 (有喜欢玄幻小说的朋友们,我强烈推荐大家看这本书,但是请支持正版,毕竟是作者用心写的小说)
二、获取第一章内容
对html有一定了解的朋友们应该都知道, html是一个超文本标记语言, 里面存了大量标签, 打开网页,进入开发者模式, 可以看到下面的内容:
在图片中, 我们可以看到很多
# -*- coding:utf-8 -*-
import requests
from bs4 import BeautifulSoup
def main():
target = 'https://www.biquge5200.com/38_38857/15054739.html'
req = requests.get(url=target)
bf = BeautifulSoup(req.text, 'html5lib')
content = bf.find_all('div', id='content')
print(content)
if __name__ == '__main__':
main()
注意:使用BeautifulSoup 解析文本的时候, 需要指定解析的方式,在这里,我们是以html5的方式来解析文本, 在第一次使用的时候,需要先安装html5lib库
运行结果:
不过通过运行结果可以看出,光通过上面的代码,会用很多html标签, 需要,通过content[0].text 来获取文字, 并且将空格多的地方,用换行符替换掉,使得排版更加简洁, 当然,在有些网站,空格部分甚至可能使用转义字符”& n b s p ;”, 这个就需要通过正则表达式来查找转义字符并替换
# -*- coding:utf-8 -*-
import requests
from bs4 import BeautifulSoup
def main():
target = 'https://www.biquge5200.com/38_38857/15054739.html'
req = requests.get(url=target)
bf = BeautifulSoup(req.text, 'html5lib')
content = bf.find_all('div', id='content')
final_content = content[0].text.replace(' ', '\n\n ')
print(final_content)
if __name__ == '__main__':
main()
注意:此处为什么会使用content[0]呢? 因为使用find_all方法查到的数据是以列表的形式呈现的,其实