從哪裏?請求.例外?進口?請求異常
進口?關於
進口?要求
進口?操作系統(Operating System)
def?get_html_text(url):
嘗試:
r?=?請求. get(url)
r.raise_for_status()
回歸?r .文本
除了?請求異常:
回歸?沒有人
def?獲取_章節_名稱(html):
湯?=?BeautifulSoup(html,?lxml’)
charpter?=?soup.select('。BG’)
charpter _ names?=?[]
為了什麽?入門?在?charpter[1:]:
charpter_name?=?re . find all(& lt;h2 & gt(.*?)& lt/H2 & gt;',?str(條目))
文件名?=?re . find all(& lt;答?href。*?& gt(.*?)& lt/a & gt;',?str(條目))
如果?charpter_name?然後呢。文件名:
為了什麽?名字?在?文件名:
名字?=?name.split('?'))[0]
char pter _ names . append(char pter _ name[0]?+?'_'?+?姓名)
否則:
及格
回歸?集合(章節名稱)
def?get_each_url(html):
湯?=?BeautifulSoup(html,?lxml’)
網址?=?soup.select('ul?李?a’)
為了什麽?網址?在?URL:
鏈接?=?url.get('href ')
文字?=?url.text.split('?'))[0]
全名?=?url.text.replace('?'),'')
產量?{'url ':?鏈接,?文本':文本,'全名':全名}
打印(文本)
def?獲取文本(url):
r?=?請求. get(url)
r .編碼?=?r .表觀_編碼
湯?=?BeautifulSoup(r.text,?lxml’)
物品?=?soup.select('div.content-body ')
物品?=?re . find all(';(.*?);',?項目[0]。文字,?關於。s)
回歸?項目[0]。編碼()
def?保存到文件(url,文字,?全名):
base_dir?=?慕道的
路徑?=?'{}\\{}\\{}'.format(os.getcwd(),?base_dir?正文)
如果?不是嗎?os.path.exists(路徑):
嘗試:
os.makedirs(路徑)
除了:
及格
嘗試:
用什麽?打開(路徑?+'\\'+?全名?+'.' txt ',?WB’)?作為?女:
f.write(get_text(url))
除了:
及格
def?main():
網址?=?'/'
html?=?get_html_text(url)
章節?=?獲取_章節_名稱(html)
為了什麽?章?在?章節:
為了什麽?每個?在?get_each_url(html):
如果?每個['文本']?==?chapter.split('_')[-1]:
保存到文件(每個['url'],章節,每個['全名'])
如果?__name__?==?__main__ ':
主()