2010-03-11 33 views
0

其它這裏是我想獲取無法獲取網站與Python了urllib.urlopen()或任何Web瀏覽器要比知牀

https://salami.parc.com/spartag/GetRepository?friend=jmankoff&keywords=antibiotic&option=jmankoff%27s+tags

當我與抓取網站的網站的網址下面的代碼與下面的代碼顯示的內容:

sock = urllib.urlopen("https://salami.parc.com/spartag/GetRepository?friend=jmankoff&keywords=antibiotic&option=jmankoff's+tags") 
html = sock.read() 
sock.close() 
soup = BeautifulSoup(html) 
print soup.prettify() 

我得到以下輸出:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<html> 
<head> 
    <title> 
    Error message 
    </title> 
</head> 
<body> 
    <h2> 
    Invalid input data 
    </h2> 
</body> 
</html> 

我也得到了與urllib2相同的結果。現在有趣的是,這個URL只在知牀網頁瀏覽器v3.5.7上運行。 (當我說它的作品,我的意思是它給我帶來了正確的頁面)。當我將這個URL提供給Firefox 3.0.15或Konqueror v4.2.2時。我得到完全相同的錯誤頁面(「輸入數據無效」)。我不知道是什麼造成了這種差異,以及我如何使用Python獲取這個頁面。有任何想法嗎?

感謝

回答

2

如果你看到urllib2文檔,它說

urllib2.build_opener([handler, ...])¶ 

    ..... 
    If the Python installation has SSL support (i.e., if the ssl module can be imported), HTTPSHandler will also be added. 

    ..... 

您可以嘗試使用的urllib2與ssl模塊組裝在一起。或者,您可以使用httplib

0

這正是您在單擊帶有Web瀏覽器的鏈接時所獲得的結果。也許你應該已經登錄或有一個餅乾集或東西

我得到了相同的消息爲Firefox的3.5.8(shiretoko)在Linux上

相關問題