python 网上数据获取(2.文档)

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">    公元1644425日,京城<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)
输出:
['公元1644425日,京城\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()

代码运行:

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值