0

Python で特定の行を取得しようとしていますが、行き詰まっています。

これが私のコードです:

import urllib2
response = urllib2.urlopen('http://pythonforbeginners.com/')
info = response.info()
html = response.read()
# do something
response.close()  # best practice to close the file

if "x" in str(info):
print str(info)

raw_input()

サーバーのタイプを表示する行を取得しようとしています。

4

2 に答える 2

1

あなたの行がhttpヘッダーの行を意味していると思います。次のコードで http ヘッダーを取得できます。

import urllib2
response = urllib2.urlopen('http://pythonforbeginners.com/')
info = response.info()
html = response.read()
# do something
response.close()  # best practice to close the file
# this is how to process the http header
for key in info :
    print key, info[key] 

raw_input()

または、次のように、情報を文字列に変換して \r\n で分割することもできます (http ヘッダーは \r\n で区切ります)。

for line in str(info).split("\r\n") :
    print line, "=="
于 2013-06-30T03:40:02.677 に答える
1

本当にinfo文字列として扱う必要がありますか? そうでない場合、これはかなりうまくいくはずです:

for h in info.headers:
  if h.startswith('Server'):
    print h
于 2013-06-30T03:37:22.317 に答える