以下の出力に「サーバー」を含む行のみを印刷したいと思います。
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には現在「google.com」という名前のホストが1つあります。
アップデート
私のコードは実際には正常に機能していましたが、リストのWebサイトヘッダーに配置されたデータが複数のエントリではなく1つの大きな文字列であることが保証された、私のコードの他の部分に誤りがありました。上記のコードでは、もちろん「サーバー」を検索し、エントリ全体を出力します。私の場合は、完全な(大きな)文字列でした。
使用する
websiteheaders.extend(headers.splitlines())
それ以外の
websiteheaders.append(headers)
私のためにトリックをしました。たくさんの人に感謝します。