0 前言
昨天写一个简单的爬虫,批量读取txt文本的每行url,然后传到requests.get去解析,可是一个神奇的bug出现了,不管我怎么修改总是出现bug,原理上,应该没什么问题,所以一步步的查错,最终终于发现读取txt时出现错误,哎,学艺不精,花了不少时间。因此要纪念下这个小知识点。
1 正文
1.1 原理
文件中每行末尾会有一个隐藏的换行符“\n”,读取的时候“\n” 就会被解析出来换成行,然而我们并没有发现。一个很好的验证方法时用print(),可以直观的发现有空行产生。
1.2 小实验验证一波
txt文本内容
111.txt
111111122222
333333444444
555555666666
直接打印
for line in open("111.txt", encoding='utf-8').readlines():
url = line
#url = line.rstrip() # 去掉末尾隐藏的\n,避免出现空行。
print(url)
结果,会发现有空行,让人头疼。
111111122222
333333444444
555555666666
1.3 解决方法
python自带.strip()和.rstrip()
- .strip()的意思是消除字符串整体的指定字符
- .rstrip()的意思是消除字符串末尾的指定字符
括号里什么都不写,默认消除空格和换行符
验证:
for line in open("111.txt", encod