草庐IT

Python; urllib 错误 : AttributeError: 'bytes' object has no attribute 'read'

注意:这是Python3,没有urllib2。另外,我试过使用json.loads(),我得到这个错误:TypeError:can'tuseastringpatternonabytes-likeobject如果我使用json.loads()并从响应中删除.read(),我会收到此错误:TypeError:expectedstringorbuffer>importurllib.requestimportjsonresponse=urllib.request.urlopen('http://www.reddit.com/r/all/top/.json').read()jsonRespons

Python (pip) - RequestsDependencyWarning : urllib3 (1. 9.1) 或 chardet (2.3.0) 与支持的版本不匹配

我找到了几个关于这个问题的页面,但没有一个能解决我的问题。即使我做了一个:pipshow我明白了:/usr/local/lib/python2.7/dist-packages/requests/__init__.py:80:RequestsDependencyWarning:urllib3(1.9.1)orchardet(2.3.0)doesn'tmatchasupportedversion!RequestsDependencyWarning)Traceback(mostrecentcalllast):File"/usr/bin/pip",line9,inload_entry_poin

python - 打开本地文件适用于 urllib 但不适用于 urllib2

我正在尝试使用urllib2打开一个本地文件。我该怎么做呢?当我使用urllib尝试以下行时:resp=urllib.urlopen(url)它可以正常工作,但是当我将其切换到:resp=urllib2.urlopen(url)我明白了:ValueError:unknownurltype:/path/to/file该文件确实退出的位置。谢谢! 最佳答案 只要把"file://"放在路径前面>>>importurllib2>>>urllib2.urlopen("file:///etc/debian_version").read()'w

python - 如何在 urllib.urlretrieve 中捕获 404 错误

背景:我正在使用urllib.urlretrieve,与urllib*模块中的任何其他函数相反,因为Hook函数支持(参见下面的reporthook)..用于显示文本进度条。这是Python>=2.6。>>>urllib.urlretrieve(url[,filename[,reporthook[,data]]])但是,urlretrieve太笨了,以至于无法检测HTTP请求的状态(例如:是404还是200?)。>>>fn,h=urllib.urlretrieve('http://google.com/foo/bar')>>>h.items()[('date','Thu,20Aug20

Python 3 urllib 产生 TypeError : POST data should be bytes or an iterable of bytes. 它不能是 str 类型

我正在尝试将工作的Python2.7代码转换为Python3代码,并且收到来自urllib请求模块的类型错误。我使用内置的2to3Python工具来转换以下工作urllib和urllib2Python2.7代码:importurllib2importurlliburl="https://www.customdomain.com"d=dict(parameter1="value1",parameter2="value2")req=urllib2.Request(url,data=urllib.urlencode(d))f=urllib2.urlopen(req)resp=f.read()

python - 如何在 Python 中通过代理打开带有 urllib 的网站?

我有这个检查网站的程序,我想知道如何通过Python中的代理检查它...这是代码,只是举例whileTrue:try:h=urllib.urlopen(website)breakexcept:print'['+time.strftime('%Y/%m/%d%H:%M:%S')+']'+'ERROR.Tryingagaininafewseconds...'time.sleep(5) 最佳答案 默认情况下,urlopen使用环境变量http_proxy来确定使用哪个HTTP代理:$exporthttp_proxy='http://myp

python - 属性错误 : module 'urllib' has no attribute 'parse'

python3.5.2代码1importurllibs=urllib.parse.quote('"')print(s)它给出了这个错误:AttributeError:module'urllib'hasnoattribute'parse'代码2fromurllib.parseimportquote#importurllib#s=urllib.parse.quote('"')s=quote('"')print(s)它有效...code3fromflaskimportFlask#fromurllib.parseimportquote#s=quote('"')importurllibs=url

Python urllib2 进度 Hook

我正在尝试使用urllib2http客户端在python中创建下载进度条。我查看了API(以及在google上),似乎urllib2不允许您注册进度Hook。然而,旧的已弃用的urllib确实具有此功能。有谁知道如何使用urllib2创建进度条或报告Hook?还是有其他一些技巧可以获得类似的功能? 最佳答案 这是一个完全有效的示例,它建立在Anurag的响应分block方法之上。我的版本允许您设置block大小,并附加任意报告功能:importurllib2,sysdefchunk_report(bytes_so_far,chunk

python - Python 2.6 之前版本中 urllib2.urlopen() 的超时

urllib2documentation表示timeout参数是在Python2.6中添加的。不幸的是,我的代码库一直在Python2.5和2.4平台上运行。是否有任何替代方法来模拟超时?我要做的就是让代码与远程服务器通话一段固定的时间。也许有任何替代的内置库?(不想安装3rd方,比如pycurl) 最佳答案 您可以使用以下方法为所有套接字操作(包括HTTP请求)设置全局超时:socket.setdefaulttimeout()像这样:importurllib2importsocketsocket.setdefaulttimeout

python - 失败时如何重试 urllib2.request?

当urllib2.request超时时,会引发urllib2.URLError异常。重试建立连接的pythonic方法是什么? 最佳答案 我会使用retry装饰师。那里还有其他的,但是这个很好用。使用方法如下:@retry(urllib2.URLError,tries=4,delay=3,backoff=2)defurlopen_with_retry():returnurllib2.urlopen("http://example.com")如果引发URLError,这将重试该函数。检查上面的链接以获取有关参数的文档,但基本上它将重试