2

この類似したコードのリストが異なる結果になる理由を教えてください。最初の 1 つ (yandex.ru) はリクエストのページを取得し、もう 1 つはサイトのメイン ページ (moyareklama.ru) を取得します。

import urllib

base = "http://www.moyareklama.ru/single_ad_new.php?"
data = {"id":"201623465"}
url = base + urllib.urlencode(data)
print url
page = urllib.urlopen(url).read()
f = open ("1.html", "w")
f.write(page)
f.close()
print page

##base = "http://yandex.ru/yandsearch?"
##data = (("text","python"),("lr","192"))
##url = base + urllib.urlencode(data)
##print url
##page = urllib.urlopen(url).read()
##f = open ("1.html", "w")
##f.write(page)
##f.close()
##print page
4

1 に答える 1

2

urllib.urlopen とブラウザで異なる結果が得られる理由として最も可能性が高いのは、標準の HTTP 301/302 応答だけでなく、javascript と meta/refresh タグを使用してブラウザをリダイレクトできるためです。urllib モジュールは HTTP 301/302 応答によってのみリダイレクトされると確信しています。

于 2012-10-09T04:58:50.820 に答える