2013-07-29 219 views
0

我正在編寫一個程序,我需要像在計算機上一樣從一個頁面跳轉到另一個頁面。使用urllib2從一個頁面跳轉到另一個頁面

關於urllib我去了一個頁面,並從該網頁源獲得一個網址,然後我採取該網址,我去了,但我從網站收到一個錯誤,說我來自錯誤的頁面,因爲urllib doesn' t從一頁開始,轉到另一頁,它會打開一個新頁面。 。 這裏是一些示例代碼:

tree = self.opener.open('http://www.example.com').read() 
#Beautiful soup parsing to get the new _url 
new_page = self.opener.open('http://www.example/new_url.com').read() 
print new_page #Output is error page 

我如何寫它,以便該網站認爲我從以前的頁面我在哪裏嗎?

謝謝

+0

您是否必須使用'urllib2' - 我覺得您會發現使用request和它的requests.session對象更容易使用。否則,您可能希望嘗試設置引薦來源的標頭,並查看是否使網站開心。 –

+0

我正在考慮使用請求,但你可以添加一個標題請求,因爲它不工作沒有標題 – Serial

+0

它就像'requests.get('http://example.com/page',headers = {'Referer' :'http://example.com'})' –

回答

0

如果您試圖訪問的網站有這幾樣情面,你會在很多試圖進入它使用麻煩「的urllib2」只 - 作爲它只是提供了一個非常低的您需要在程序中模擬HTTP標頭,說明您來自哪裏,並重播您在第一次訪問時可能獲得的任何cookie。

有第三方Python模塊使這些任務變得更容易,我建議你起訴「requests」庫,或者至少「mechanize」。甚至沒有使用它們,你所要求的是默認的 - 但按照你選擇的項目的例子來說,它應該簡單得多。

+0

我做了 'self.opener.addheaders = [('Referer','http://www.example.com')]' – Serial

相關問題