2013-05-02 52 views
1

我正在嘗試編寫一個Python程序來處理RSS,但是我有一些問題直接從互聯網。PYTHON 3.3.1 - 使用urllib直接打開文件,代碼卡在特定的行

我正在使用urllib.request.urlopen()來獲取文件。這裏是一個我有故障碼位:

import xml.etree.ElementTree as et 
import urllib.request as urlget 

self.sourceUrl = sourceUrl  #sourceUrl was an argument 
self.root = et.fromstring(urlget.urlopen(sourceUrl).read()) 

我已經下來跟蹤的問題一行:

urllib.request.urlopen calls urllib.request.opener.open() 
    which then calls self._open() 
    which then calls self._call_chain() 
    which then calls urllib.request.HTTPHandler.http_open() 
    which then calls urllib.request.AbstractHTTPHandler.do_open() 
    which then calls http.client.HTTPConnection.getresponse() 
    which then calls http.client.HTTTResponse.begin() 
    which then calls self._read_status() 

問題行(由是出現在唯一的行發現暫停執行很多次):
Python33 \ LIB \ HTTP \ client.py線317

if len(line) > _MAXLINE: 

我可以繼續的代碼,但只有當我照看它通過步過直到我回到我的代碼。

在我的測試中,這個問題從來沒有發生過,所以我想不出爲什麼我現在得到它。

在此先感謝您的幫助!

編輯:來源可以發現here。很久以前,我失去了從事這個項目的工作的動力,從那以後就沒有觸及過它。如果我有更多的動力,我可能會重做整個事情,但我不期望很快。如果你想回答,我邀請你參加,這可能對其他人有利。然而,要警告的是,代碼非常糟糕,因爲那時我的經驗相對較少。我無法真正找到解決方法,但我發現你必須查看數據/代碼/函數.py

另外請注意,據我記憶,它不是稱之爲錯誤,只是這個程序在我不耐煩之前每次都掛了幾分鐘。

+1

請問您可以添加完整的系統跟蹤? – 2013-05-02 02:41:53

回答

0

沒有更多的代碼,它將很難幫助你。您的Feed的網址是什麼?當您嘗試簡單訪問它時,它會返回什麼?

Python 3.3.0 (v3.3.0:bd8afb90ebf2, Sep 29 2012, 01:25:11) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import xml.etree.ElementTree as et 
>>> import urllib.request as urlget 
>>> sourceurl = "http://www.la-grange.net/feed" 
>>> root = et.fromstring(urlget.urlopen(sourceurl).read()) 
>>> root 
<Element '{http://www.w3.org/2005/Atom}feed' at 0x1013a82b8> 
>>>