1.解析要获取内容网页:拿到网页网址,拿到网页代码元素
2.准备好工具:requests , BeautifulSoup ,tqdm , time
3.获取需要内容:
import requests
from bs4 import BeautifulSoup
#解析网页内容:
r = requests.get('https://www.81zw.com/book/72926/189141.html')
r.encoding = 'utf-8'
text = BeautifulSoup(r.text,'lxml')
print(text)
输出:
<div style="text-align: center"><script>read2();</script></div>
<div id="content"> 公元1644年4月25日,京城<br/><br/> “太子殿下驾临神机营,众将速到主营参拜。”<br/><br/> 随着一声公鸭嗓子的喊声,大明帝国神机营的士兵炸开了锅。<br/><br/> 大明素来重文轻武,别说是太子殿下了,就算是一般的皇子,那也不可能踏足军营半步,今儿这是怎么回事儿了?<br/><br/> 这些神机营的士兵当然搞不明白,但作为事件主角的太子朱慈朗却非常明白,他在闯逆大军将要攻破京城的时候,竟然从21世纪穿越到这里。<br/><br/> 第一感觉就是透心凉,这是个什么年代?一个历史上混乱的不能在混乱的年代。<br/><br/> 尤其是他的这个身份,不管是南方的叛军还是北方的建奴,都不可能让他有喘气的机会。<br/><br/> 刀砍脖子的滋味,想想就害怕。<br/><br/> 所以重生之后的两个小时,他就做了两件事情。<br/><br/> 第一件事情就是冲到已经没有多少人的皇宫,拿上了崇祯皇帝的金牌令箭。<br/><br/> 至于那个正在煤山哭诉的皇帝老爹,咱现在真是没工夫管他,一秒钟都没有,没准现在已经钓在歪脖树上了。<br/><br/> 第2件事情就是集合崇祯皇帝分配给自己的卫队,准备拿下这年代最有用的军队,也就是大明京城唯一的火器军队神机营。<br/><br/> 当然这位太子看上的并不是这些落后的火绳枪和火统,他是另有所图。<br/><br/> 穿越带系统,这可是标配。<br/><br/> 咱的系统里面可以兑换这个年代最先进的燧发枪,这可是百多年之后才有的玩意儿。<br/><br/> 但不管这武器多先进,总得有人操纵才行,目前……
#提取需要文件:
texts = text.find('div',id = 'content')
content = texts.text.strip().split('br')
print(content)
输出:
['公元1644年4月25日,京城\xa0\xa0\xa0\xa0“太子殿下驾临神机营,众将速到主营参拜。”\xa0\xa0\xa0\xa0随着一声公鸭嗓子的喊声,大明帝国神机营的士兵炸开了锅。\xa0\xa0\xa0\xa0大明素来重文轻武,别说是太子殿下了,就算是一般的皇子,那也不可能踏足军营半步,今儿这是怎么回事儿了?\xa0\xa0\xa0\xa0这些神机营的士兵当然搞不明白,但作为事件主角的太子朱慈朗却非常明白,他在闯逆大军将要攻破京城的时候,竟然从21世纪穿越到这里。\xa0\xa0\xa0\xa0第一感觉就是透心凉,这是个什么年代?一个历史上混乱的不能在混乱的年代。\xa0\xa0\xa0\xa0尤其是他的这个身份,不管是南方的叛军还是北方的建奴,都不可能让他有喘气的机会。\xa0\xa0\xa0\xa0刀砍脖子的滋味,想想就害怕。\xa0\xa0\xa0\xa0所以重生之后的两个小时,他就做了两件事情。\xa0\xa0\xa0\xa0第一件事情就是冲到已经没有多少人的皇宫,拿上了崇祯皇帝的金牌令箭。\xa0\xa0\xa0\xa0至于那个正在煤山哭诉的皇帝老爹,咱现在真是没工夫管他,一秒钟都没有,没准现在已经钓在歪脖树上了。\xa0\xa0\xa0\xa0第2件事情就是集合崇祯皇帝分配给自己的卫队,准备拿下这年代最有用的军队,也就是大明京城唯一的火器军队神机营。\xa0\xa0\xa0\xa0当然这位太子看上的并不是这些落后的火绳枪和火统,他是另有所图。\xa0\xa0\xa0\xa0穿越带系统,这可是标配。\xa0\xa0\xa0\xa0咱的系统里面可以兑换这个年代最先进的燧发枪,这可是百多年之后才有的玩意儿。\xa0\xa0\xa0\xa0但不管这武器多先进,总得有人操纵才行,目前的京城除了神机营之外,恐怕其他人拿到燧发枪也得当烧火棍子用。\xa0\xa0\xa0\xa0东宫太监总管曹仁礼从小照顾太子长大,但此刻也是怕的要命,太子怎么这么大胆?这可是假传圣旨…\xa0\xa0\xa0\xa0虽然城外闯贼的军队遮天蔽日,眼看就要杀进京城,京城各衙门的大臣也都跑的差不多了,但这并不能够成为太子.....]
content = texts.text.strip().split('\xa0'*4)
print(content)
输出:
['公元1644年4月25日,京城', '“太子殿下驾临神机营,众将速到主营参拜。”', '随着一声公鸭嗓子的喊声,大明帝国神机营的士兵炸开了锅。', '大明素来重文轻武,别说是太子殿下了,就算是一般的皇子,那也不可能踏足军营半步,今儿这是怎么回事儿了?', '这些神机营的士兵当然搞不明白,但作为事件主角的太子朱慈朗却非常明白,他在闯逆大军将要攻破京城的时候,竟然从21世纪穿越到这里。', '第一感觉就是透心凉,这是个什么年代?一个历史上混乱的不能在混乱的年代。', '尤其是他的这个身份,不管是南方的叛军还是北方的建奴,都不可能让他有喘气的机会。', '刀砍脖子的滋味,想想就害怕。', '所以重生之后的两个小时,他就做了两件事情。', '第一件事情就是冲到已经没有多少人的皇宫,拿上了崇祯皇帝的金牌令箭。', '至于那个正在煤山哭诉的皇帝老爹,咱现在真是没工夫管他,一秒钟都没有,没准现在已经钓在歪脖树上了。', '第2件事情就是集合崇祯皇帝分配给自己的卫队,准备拿下这年代最有用的军队,也就是大明京城唯一的火器军队神机营。', '当然这位太子看上的并不是这些落后的火绳枪和火统,他是另有所图。', '穿越带系统,这可是标配。', '咱的系统里面可以兑换这个年代最先进的燧发枪,这可是百多年之后才有的玩意儿。', '但不管这武器多先进,总得有人操纵才行,目前的京城除了神机营之外,恐怕其他人拿到燧发枪也得当烧火棍子用。', '东宫太监总管曹仁礼从小照顾太子长大,但此刻也是怕的要命,太子怎么这么大胆?这可是假传圣旨…', '虽然城外闯贼的军队遮天蔽日,眼看就要杀进京城,京城各衙门的大臣也都跑的差不多了,但这并不能够成为太子殿下偷拿金牌的理由。', '按照崇祯皇帝的安排,太子殿下应该早早离开皇城才是,到南方以图后作。', '可太子殿下并没有这么做,反而是集结东宫卫士和皇上派来的侍卫,准备一举拿下4000人的神机营。', '当然因为京城战乱的原因,现在这里只有不足1600人了,就这......]
#下载需要内容:
chapter_name = '明末:太子十万火枪兵崛起.txt'
with open(chapter_name,mode = 'w+', encoding = 'utf-8') as f:
f.write('\n'.join(content))
f.write('\n')
f.close()
3.整个文档内容获取:
import requests , time
from bs4 import BeautifulSoup
from tqdm import tqdm #下载进度查看
def get_content(target):
r = requests.get(url = target)
r.encoding = 'utf-8'
text = BeautifulSoup(r.text, 'lxml')
texts = text.find('div', id='content')
content = texts.text.strip().split('\xa0' * 4)
return content
if __name__ == '__main__':
server = 'https://www.81zw.com'
url = 'https://www.81zw.com/book/72926/'
chapters_r = requests.get(url)
chapters_r.encoding = 'utf-8'
texts = BeautifulSoup(chapters_r.text,'lxml')
chapters_bs = texts.find('div',id = 'list')
chapters_bs = chapters_bs.find_all('a')
for chapter in tqdm(chapters_bs):
url = server + chapter.get('href') #获取章节网址
chapter_name = chapter.string # 获取章节标题
print(url)
content = get_content(url)
file_name = '明末:太子十万火枪兵崛起.txt'
f = open(file_name,mode = 'a',encoding = 'utf-8')
f.write(chapter_name)
f.write('\n')
f.write('\n'.join(content))
f.write('\n')
f.close()
代码运行: