2010-11-19 78 views
0

我正在使用機械化執行bing搜索,然後我將用美麗的湯來處理結果。我已經成功地執行谷歌和雅虎搜索與此相同的方法,但是當我做一個bing搜索,我得到的只是一個空白頁面。使用機械化bing搜索返回空白頁

我完全困惑,爲什麼這是這種情況,如果任何人都可以擺脫此事將不勝感激,將不勝感激。以下是我正在使用的代碼示例:

from BeautifulSoup import BeautifulSoup 
import mechanize 
br = mechanize.Browser() 
br.set_handle_robots(False) 
br.open("http://www.bing.com/search?count=100&q=cheese") 
content = br.response() 
content = content.read() 
soup = BeautifulSoup(content, convertEntities=BeautifulSoup.ALL_ENTITIES) 
print soup 

結果是空白行打印。

回答

0

您可能得到的答案是答案已經存在於您的瀏覽器緩存中。試着改變一點你的查詢字符串,例如減計數到50

您還可以添加一些調試代碼,看看服務器返回的標題:

br.open("http://www.bing.com/search?count=50&q=cheese") 
response = br.response() 
headers = response.info() 
print headers 
content = response.read() 

編輯:

我有用Firefox和Opera瀏覽器試用了count=100這個查詢,看起來bing不喜歡這麼大的數量。當我減少計數然後它工作。所以這不是機械化或其他Python庫的錯誤,但是你的查詢有問題。它也似乎瀏覽器可以查詢與count=100 bing,但它必須首先查詢bing與一些較小的計數。奇怪!

+0

感謝您的洞察。我重複了搜索,將計數改爲50,並按預期工作,無數次。我將計數改回到100,並且不再工作......看起來很奇怪。 還有我沒有你這裏提出的調試是對數= 100 緩存控制輸出:無緩存 的Content-Length:0 日期:週五,2010年11月19十二時42分00秒GMT 連接:關閉 Set-Cookie:OVR = flt = 0&flt2 = 0&flt3 = 0&flt4 = 0&flt5 = 0&ramp1 = 0&release = or3&preallocation = 0 &R=1; domain = .bing.com;路徑=/ – Quantra 2010-11-19 14:27:04

+0

我編輯答案:這個查詢不能從普通的瀏覽器工作!至少第一次。真奇怪, – 2010-11-19 21:46:12