url = 'https://www.qidian.com/chapter/1036425375/744555833/'
response = requests.get(url) # requests.get请求的页面在有些时候和谷歌浏览器开发者工具显示的不一样,出现这种情况,以获取到的源码为准.
data = response.text
# 初步提取
p_content = re.findall('<p>(.*?)</p></main>',data)[0]
# 二次清洗
content = re.sub('<p>|</p>','',p_content) #\n和\s因为换行的本质也是空,类似于空格
content = content.replace('<br>', '\n') # 将<br>标签替换为换行符
# 保存数据
with open('山里的龙王.txt',mode='w',encoding='utf-8-sig') as f:
f.write(content)
f.write('\n\n')
我想请问大家,为什么我写入到文档后却没有成功的换行呢?
来,我教你咋换行:
import re
import requests
url = 'https://www.qidian.com/chapter/1036425375/744555833/'
response = requests.get(url) # requests.get请求的页面在有些时候和谷歌浏览器开发者工具显示的不一样,出现这种情况,以获取到的源码为准.
data = response.text
# 初步提取
p_content = re.findall('<p>(.*?)</p></main>',data)[0]
# 二次清洗
content = re.sub('<p>|</p>','-',p_content) #\n和\s因为换行的本质也是空,类似于空格
result_list=content.split('-')
# 保存数据
with open('山里的龙王.txt',mode='w',encoding='utf-8-sig') as f:
for data in result_list:
f.write(data+'\n')
这样就能成功换行了。你试试。
在你提供的代码中,写入文档时使用了f.write(content)
和f.write('\n\n')
两个写入操作,但它们之间没有添加换行符,因此会导致写入的内容没有换行。
为了确保写入的内容有换行,你可以在f.write(content)
之后添加一个换行符,例如:
with open('山里的龙王.txt', mode='w', encoding='utf-8-sig') as f:
f.write(content)
f.write('\n\n')
这样,写入的内容就会有两个换行,保证了文本之间的分隔。如果你想要在文本之间只有一个换行,可以将第二个'\n'
改为'\n'
。
如果在添加换行符之后还是没有换行,可能是因为源文本content
中没有正确的换行符或者其中的换行符不是'\n'。在这种情况下,你可以尝试检查源文本的换行符,并将其转换为'\n',或者使用适当的方法处理源文本的格式。
问题点: 段落之间没有换行
处理方法: 将原来网页元素的分段标签直接替换为txt文档的换行符
修改第九行代码为
content = re.sub('<p>|</p>', '\n', p_content)
将所有的代码和配置都变成模块化可配置化,这样就提高了代码的重用性,不再每次都去修改代码内部,这个就是我们逐步要做的事情,可配置化