2012-10-08 93 views
2

請告訴我爲什麼這個類似的代碼列表會得到不同的結果。 第一個(yandex.ru)獲得請求頁面,另一個讓網站(moyareklama.ru)的主頁在Python中執行獲取請求

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 
+7

我猜想,因爲他們是不同的網站,你會得到不同的結果... –

+0

第一個例子返回請求頁面,另一個主頁的網站 –

+0

使用[請求]讓你的生活更輕鬆(http://docs.python-requests .org/en/latest /)模塊 – nathancahill

回答

2

最有可能的原因,你得到的東西用了urllib.urlopen不同,您的瀏覽器是因爲您的瀏覽器可以通過javascript和meta/refresh標籤以及標準的HTTP 301/302響應進行重定向。我很確定urllib模塊只會被HTTP 301/302響應重定向。