2012-10-12 109 views
-1

我使用BeautifulSoup來抓取各種網頁,但是對於同一個URL我經常會得到不一致的結果。我相信這是因爲我經常刮同一個網頁。如果我多次運行相同的命令,如何確保我得到的「湯」是一致的?有沒有一種很好的方法來處理這個問題?使用美麗的湯處理錯誤

soup = BeautifulSoup(urllib2.urlopen(url)) 

if len(soup.find_all("var","model")) == 0: 
    print "test" # Inconsistent for the same URL if run several times in a row 

編輯:循環這樣的:LEN(soup.find_all( 「VAR」, 「模型」)),給了我2個不同的結果(0和2)隨着時間的推移,以隨機方式。這就是我不一致的意思,你們有提示我可能會誤解的地方嗎?

+1

有什麼不一致之處?你想知道錯誤handeling,但你得到的錯誤在哪裏? – root

+0

錯誤是數據不一致,試圖找到一個爲什麼確保我總是得到相同的結果,這是一個基於您提供的靜態頁面 –

+0

,似乎該網址並不總是包含VAR或MODEL標記...我想你必須提供更多的東西,比如頁面代碼,一些堆棧跟蹤,一些錯誤等...... –

回答

1

該頁面不是真的是靜態的,或者存在導致頁面只在湯變量中部分加載的問題。在底部添加一行顯示加載到湯中的樹的全部大小(不知道是否len()工作或足夠)。通過這種方式,您將知道原因是在源中還是在BeautifulSoup代碼中。

+0

我已經循環了這個:len(soup.find_all(「var」,「model」)),它隨機在一段隨機的頻率下給我2個不同的結果。 –

0

好吧,事實證明它不是美麗的湯,我已經多次提取相同的網址,並將html寫出來,結果每次都有小的差異。頁面並非真正的靜態