有一种方法,在将文件发送到PARSER()之前删除文件中的空白行:在下面的代码中:
import robotexclusionrulesparser as rerp
p = rerp.RobotExclusionRulesParser()
with open('robots.txt') as f:
s = f.read()
p.parse(s)
print(p)
我试过但没有成功:
import re
import robotexclusionrulesparser as rerp
p = rerp.RobotExclusionRulesParser()
list = []
with open('robots.txt') as f:
s = f.read()
if not re.match(r'^\s*$', s):
list.append(s)
p.parse(list)
print(p)
返回:
Traceback (most recent call last):
File "test.py", line 10, in <module>
p.parse(list)
File "/usr/local/lib/python2.7/dist-packages/robotexclusionrulesparser.py", line 530, in parse
s = s.decode("iso-8859-1")
AttributeError: 'list' object has no attribute 'decode'
出于调试目的机器人.txt地址:
User-agent: *
Disallow: /
看看这个:
您的实际问题显然是parse方法需要str,而不是list。你知道吗
还要检查:list是保留项,不应用作变量名。你知道吗
parser()需要一个包含以“\n”结尾的行列表的字符串。你知道吗
代码如下:
Regex是您想要的,但是不要使用
match
,而是使用sub
:Example on Regex101
相关问题 更多 >
编程相关推荐