我只想在下面的输出中打印包含“服务器”的行:
Date: Sun, 16 Dec 2012 20:07:44 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=ISO-8859-1
Set-Cookie: PREF=ID=da8d52b67e5c7522:FF=0:TM=1355688464:LM=1355688464:S=CrK5vV-qb3UgWUM1; expires=Tue, 16-Dec-2014 20:07:44 GMT; path=/; domain=.google.com
Set-Cookie: NID=67=nICkwXDM6H7TNQfHbo06FbvZhO61bzNmtOn4HA71ukaVDSgywlBjBkAR-gXCpMNo1TlYym-eYMUlMkCHVpj7bDRwiHT6jkr7z4dMrApDuTk_HuTrZrkoctKlS7lXjz9a; expires=Mon, 17-Jun-2013 20:07:44 GMT; path=/; domain=.google.com; HttpOnly
P3P: CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info."
Server: gws
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Connection: close
此信息是从名为 websiteheaders 的列表中获取的。我有下面的一段代码让我发疯,因为它不能正常工作......
for line in websiteheaders:
if "Server" in line:
print line
现在,上面的这段代码打印出与我文章开头描述的完全相同的文本块。我只是似乎不明白为什么会这样......
正如我所说,我只想打印包含“服务器”的行,如果可能的话没有正则表达式。如果不可能,请使用正则表达式。
请帮忙,谢谢!
编辑:到目前为止,我的完整代码粘贴在这里:http ://pastebin.com/sYuZyvX9 编辑2:为了完整起见,在 hosts.txt 中目前有 1 个名为“google.com”的主机
更新
我的代码实际上运行良好,但在我的另一段代码中有一个错误,它确保放入列表 websiteheaders 的数据是 1 个大字符串而不是多个条目。在上面的代码中,它当然会找到“Server”并打印整个条目,在我的例子中是完整的(大)字符串。
使用
websiteheaders.extend(headers.splitlines())
代替
websiteheaders.append(标题)
为我做了伎俩。非常感谢你们。