用到的第三方库
re-用于正则表达式匹配
requests-用于获取网页内容
docx-用于存储docx格式文件
源代码
import re
import requests
from docx import Document
def str2doc(doc_title='', file_name='demo', text=''):
'''将字符串存入docx'''
document = Document()
# 标题
document.add_heading(doc_title, 0)
# 添加文本
p = document.add_paragraph(text,style='List Number')
#保存文件
document.save('%s'%file_name)
def get_poem(url_poem,down2where):
'''获取网页上的诗集文本存入docx格式文件
url_poem-诗集网页对应url
down2where-文件路径及文件名称
'''
# 获取html文本
resp = requests.get(url_poem)
# 使用utf-8以防乱码
resp.encoding = 'utf-8'
text = resp.text
poem = re.findall(r'<strong>现代诗精选</strong></p><p>(.*?)<li><a href="https://www.lz13.cn/shiju/51492.html">现代诗歌集</a></li>',text)[0]
# 数据清洗
keys_nextline = ['<br />','</p><p>']
keys_none = re.findall(r'<a href=".*?">',poem)
keys_none.extend(['《<strong>','</strong>》</p><p>','——','……','</p><ul>','</a>'])
for key in keys_none:
poem = poem.replace(key, '')
for key in keys_nextline:
poem = poem.replace(key,'\n')
str2doc('现代诗集',down2where,poem)
'''测试代码'''
url_poem = 'https://www.lz13.cn/shiju/67254.html'
filename = '现代诗集.docx'
get_poem(url_poem,filename)