求一个python3爬虫代码,可以直接从小说网站复制小说正文,整合成新的正文。
从哪里?请求.例外?进口?请求异常
进口?关于
进口?要求
进口?操作系统(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__ ':
主()