我真的是一个试图学习Python的ETL人,请帮忙
import urllib2
urls =urllib2.urlopen("url1","url2")
i=0
while i< len(urls):
htmlfile = urllib2.urlopen(urls[i])
htmltext = htmlfile.read()
print htmltext
i+=1
我收到错误
追踪(最近一次通话): 文件&#34;。\ test.py&#34;,第2行,in urls = urllib2.urlopen(&#34; url1&#34;,&#34; url2&#34;) 文件&#34; c:\ python27 \ Lib \ urllib2.py&#34;,第154行,在urlopen中 return opener.open(url,data,timeout) 文件&#34; c:\ python27 \ Lib \ urllib2.py&#34;,第437行,处于打开状态 response = meth(req,response) 文件&#34; c:\ python27 \ Lib \ urllib2.py&#34;,第550行,在http_response中 &#39; http&#39;,请求,响应,代码,消息,hdrs) 文件&#34; c:\ python27 \ Lib \ urllib2.py&#34;,第475行,出错 return self._call_chain(* args) 文件&#34; c:\ python27 \ Lib \ urllib2.py&#34;,第409行,在_call_chain中 result = func(* args) 文件&#34; c:\ python27 \ Lib \ urllib2.py&#34;,第558行,http_error_default 提出HTTPError(req.get_full_url(),code,msg,hdrs,fp) urllib2.HTTPError:HTTP错误405:不允许的方法
答案 0 :(得分:1)
您的错误来自第2行:
package me.Pixel;
import org.bukkit.entity.Arrow;
import org.bukkit.scheduler.BukkitRunnable;
public class LightningShot extends BukkitRunnable {
private Arrow arrow;
private int tick = 1;
public LightningShot(Arrow arrow) {
this.arrow = arrow;
}
@Override
public void run() {
if (arrow == null || arrow.isOnGround() || tick++ > 20 * 10) {
this.cancel();
} else {
arrow.getWorld().strikeLightning(arrow.getLocation());
}
}
}
您尝试访问的网址是否返回http错误代码
urls =urllib2.urlopen("url1","url2")
查看urllib2文档,您应该只使用1个url作为参数
https://docs.python.org/2/library/urllib2.html
打开URL网址,可以是字符串或请求对象。
数据可以是指定要发送到服务器的其他数据的字符串,如果不需要这样的数据,则为None。目前,HTTP请求是唯一使用数据的请求;提供数据参数时,HTTP请求将是POST而不是GET。
您输入的第二个参数可能是将请求转换为POST,这将解释方法不允许的代码。