PYTHON 3.3.1—使用urllib直接打开文件,代码会卡在特定的行上



我试图写一个Python程序来处理RSS,但是我有一些问题直接从互联网下载文件。

我使用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()  

问题行(多次暂停执行时只出现一行):
Python33Libhttpclient.py Line 317

if len(line) > _MAXLINE:

我可以继续代码,但前提是我通过Step Over来照顾它,直到我回到我的代码。

在我的测试中,这个问题从来没有发生过,所以我不知道为什么我现在得到它。

提前感谢您的帮助!

EDIT:源代码可以在这里找到。我很久以前就失去了做这个项目的动力,从那以后就再也没有碰过它。如果我有更多的动力,我可能会重做整个事情,但我不指望很快就能做到。如果你想回答,我邀请你试一试,这可能对别人有益。但是,要注意的是,代码很糟糕,因为当时我的经验相对较少。我真的找不到我的方法,但我已经发现你必须看data/code/functions.py

还请注意,就我所记得的,它并没有调用错误,它只是在我不耐烦之前程序每次挂起几分钟。

如果没有更多的代码,将很难帮助您。提要的URL是什么?当您试图简单地访问它时,它返回什么?

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>
>>> 

最新更新