0
我想从Eurostat网站下载一个XML文件,但我在使用Python中的urllib时遇到了问题。不知何故,当我使用我的常规Chrome浏览器时,它能够发出HTTP请求,网站将生成一个XML文件,但是当我尝试在python中执行相同的操作时,出现服务器错误。这是我使用的代码:我一直在使用urllib.urlretrieve也试图Python中urllib调用的问题。获取服务器错误
import urllib
from xml.etree import ElementTree as ET
response = urllib.urlopen("http://ec.europa.eu/eurostat/SDMX/diss-web/rest/data/lfsq_egais/Q.T.Y_GE15.EMP..NL")
result = response.read()
print result
而且也不能工作。任何可能发生这种情况的原因?我回来的HTML如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Draft//EN">
<HTML>
<HEAD>
<TITLE>Error 500--Internal Server Error</TITLE>
<META NAME="GENERATOR" CONTENT="WebLogic Server">
</HEAD>
<BODY bgcolor="white">
<FONT FACE=Helvetica><BR CLEAR=all>
<TABLE border=0 cellspacing=5><TR><TD><BR CLEAR=all>
<FONT FACE="Helvetica" COLOR="black" SIZE="3"><H2>Error 500--Internal Server Error</H2>
</FONT></TD></TR>
</TABLE>
<TABLE border=0 width=100% cellpadding=10><TR><TD VALIGN=top WIDTH=100% BGCOLOR=white><FONT FACE="Courier New"><FONT FACE="Helvetica" SIZE="3"><H3>From RFC 2068 <i>Hypertext Transfer Protocol -- HTTP/1.1</i>:</H3>
</FONT><FONT FACE="Helvetica" SIZE="3"><H4>10.5.1 500 Internal Server Error</H4>
</FONT><P><FONT FACE="Courier New">The server encountered an unexpected condition which prevented it from fulfilling the request.</FONT></P>
</FONT></TD></TR>
</TABLE>
</BODY>
</HTML>
尝试捕获异常,类似于[此答案](http://stackoverflow.com/a/3351970/1987598)。 –
代码运行良好,问题是服务器没有响应urllib与我想要的XML文件(我使用Chrome时得到的)。相反,我得到一个详细描述服务器错误的HTML文档(“服务器遇到了一个意外情况,导致它无法完成请求。”) – joseph
@joseph - 这不是您的代码问题。这是服务器的问题。服务器可能会期望一些参数或cookie并抛出500而不是返回更有意义的错误页面。这是一个建议。尝试检查铬和服务器之间的会话,看看它发送的是你的Python代码没有发送的内容。 – alvits