标签: urllib2

请问这个urllib2 python代码下载文件的页面吗?

urllib2.urlopen(theurl).read() ...这会下载文件.

urllib2.urlopen(theurl).geturl() ...这个下载文件吗?(多久时间)

python http urllib2

0
推荐指数
1
解决办法
1257
查看次数

如何监控"卡住"的Python脚本?

我有一个数据密集型的Python脚本,它使用HTTP连接来下载数据.我通常一夜之间运行它.有时连接会失败,或者网站暂时无法使用.我有基本的错误处理,捕获这些异常并定期再次尝试,在重试5分钟后正常退出(并记录错误).

但是,我注意到有时这项工作就冻结了.不会抛出任何错误,并且作业仍在运行,有时在最后一条打印消息后几小时.

什么是最好的方式:

  • 监视 Python脚本,
  • 在给定间隔后检测它是否无响应,
  • 如果没有反应则退出
  • 开始另一个?

UPDATE

感谢大家的帮助.正如你们中的一些人所指出的那样,urllibsocket模块没有正确设置超时.我使用的Python 2.5游离碱urllib2的模块,并捕捉和处理MetawebErrorsurllib2.URLErrors.以下是最后一个脚本挂起12小时后的错误输出示例:

  File "/home/matthew/dev/projects/myapp_module/project/app/myapp/contrib/freebase/api/session.py", line 369, in _httpreq_json
    resp, body = self._httpreq(*args, **kws)
  File "/home/matthew/dev/projects/myapp_module/project/app/myapp/contrib/freebase/api/session.py", line 355, in _httpreq
    return self._http_request(url, method, body, headers)
  File "/home/matthew/dev/projects/myapp_module/project/app/myapp/contrib/freebase/api/httpclients.py", line 33, in __call__
    resp = self.opener.open(req)
  File "/usr/lib/python2.5/urllib2.py", line 381, in open
    response = self._open(req, data)
  File "/usr/lib/python2.5/urllib2.py", line 399, in _open
    '_open', …
Run Code Online (Sandbox Code Playgroud)

python sockets scripting freebase urllib2

0
推荐指数
1
解决办法
3592
查看次数

python库是urllib的反转?

urllib从网址中获取数据对吗?是否有一个python库,可以反过来并将数据发送到网址(例如,到您管理的网站)?如果是这样,该库是否与apache兼容?

谢谢.

python urllib urllib2

0
推荐指数
1
解决办法
166
查看次数

使用python转义带有特殊字符的查询字符串

我得到了一些非常混乱的网址,我在这里通过抓取,问题是它们在路径和查询字符串中包含空格或其他特殊字符,这里有一些例子

http://www.example.com/some path/to the/file.html
http://www.example.com/some path/?file=path to/file name.png&name=name.me
Run Code Online (Sandbox Code Playgroud)

那么,是否有一种简单而强大的方法来逃避网址,以便我可以将它们传递给urlopen?我尝试了urlib.quote,但它似乎也逃避了查询字符串中的'?','&'和'=',它似乎也逃避了协议,目前,我想要做的是使用正则表达式分离协议,路径名和查询字符串并单独转义它们,但有些情况下它们没有正确分开任何建议表示赞赏

python url escaping urllib urllib2

0
推荐指数
1
解决办法
2591
查看次数

Python下载Zip文件损坏

所以,我一直在尝试制作一个下载我的zip文件的简单下载程序.

代码如下所示:

import urllib2
import os
import shutil

url = "https://dl.dropbox.com/u/29251693/CreeperCraft.zip"

file_name = url.split('/')[-1]
u = urllib2.urlopen(url)
f = open('c:\CreeperCraft.zip', 'w+')
meta = u.info()

file_size = int(meta.getheaders("Content-Length")[0])
print "Downloading: %s Bytes: %s" % (file_name, file_size)

file_size_dl = 0
block_sz = 8192
while True:
    buffer = u.read(block_sz)
    if not buffer:
        break

    file_size_dl += len(buffer)
    f.write(buffer)
    status = r"%10d  [%3.2f%%]" % (file_size_dl, file_size_dl * 100. / file_size)
    status = status + chr(8)*(len(status)+1)
    print status,

f.close()
Run Code Online (Sandbox Code Playgroud)

问题是,它将文件下载到正确的路径,但是当我打开文件时,它的损坏,只有1张图片出现,当你点击它时,它说File Damaged.

请帮忙.

python download urllib2

0
推荐指数
1
解决办法
1588
查看次数

如何找到urllib2

我是python的新手(我正在使用python3),我正在尝试使用urllib2来学习制作网络爬虫.我似乎无法在任何地方找到它.我可以导入urllib,但是urllib2与urllib不在同一个目录中,当我尝试导入urllib2时,我在终端中收到错误.

根据我的理解,urllib2应该是pythons标准库的一部分.我在哪里可以找到它?有什么地方我可以单独下载并将它放在与urllib相同的目录中吗?

python urllib urllib2 python-3.x

0
推荐指数
1
解决办法
3543
查看次数

对于REST api,无法使用带有python的liburl2进行DELETE

好的,所以我使用与此非常类似的代码(https://gist.github.com/metadaddy-sfdc/1374762)来获取身份验证令牌并使用libur2为python中的其余api执行简单查询以获取销售人员数据库,但是当我尝试按照本答案中给出的说明时如何使用urllib2制作HTTP DELETE方法?,

我无法让它工作,所以我可以使用删除,两个代码都使用liburl但它们似乎是不同的格式,所以我不知道如何将堆栈交换提供的解决方案应用到我的代码,因为你可以告诉我我是初学者,所以任何帮助将不胜感激

编辑:这是我用密码/密码消失的代码

import urllib
import urllib2
import json
import pprint
import re
import subprocess

def authorise():
    consumer_key = '**********************'
    consumer_secret = '**************'
    username = '***********'
    password = '*****************'
    login_server = 'https://login.salesforce.com'

    token_url = login_server+'/services/oauth2/token'

    params = urllib.urlencode({
      'grant_type': 'password',
      'client_id': consumer_key,
      'client_secret': consumer_secret,
      'username': username,
      'password': password
    })
    data = urllib2.urlopen(token_url, params).read()
    oauth = json.loads(data)
    return oauth

def country_id_query(params):
    query_url = oauth['instance_url']+'/services/data/v23.0/query?%s' % params 
    headers = {
      'Authorization': 'OAuth '+oauth['access_token']
    }
    req = urllib2.Request(query_url, …
Run Code Online (Sandbox Code Playgroud)

python rest salesforce urllib2

0
推荐指数
1
解决办法
3530
查看次数

使用谷歌应用引擎在python中获取网址

我正在使用此代码在我的应用程序中发送Http请求,然后显示结果:

def get(self):
      url = "http://www.google.com/"
      try:
          result = urllib2.urlopen(url)
          self.response.out.write(result)
      except urllib2.URLError, e:
Run Code Online (Sandbox Code Playgroud)

我希望得到google.com页面的html代码,但我得到这个标志">",那有什么不对?

google-app-engine urllib2 python-2.7

0
推荐指数
1
解决办法
3263
查看次数

TypeError:urlopen()得到一个意外的关键字参数'headers'

我正在使用rest api发送推送通知.文件在这里. 我正在使用金字塔并使用芹菜安排这些推送通知.

这是我的代码示例:

result = urllib2.urlopen(urlRequest, headers={
      "X-Parse-Application-Id": settings["parse.application.id"],
      "X-Parse-REST-API-Key": settings["parse.restapi.key"],
      "Content-Type": "application/json"
     })

connection = httplib.HTTPSConnection('api.parse.com', 443)
connection.connect()

connection.request('POST', '/1/push', json.dumps(data), )
result = json.loads(connection.getresponse().read())
Run Code Online (Sandbox Code Playgroud)

但是芹菜记录了这个错误:

2015-08-18 16:39:45,092 INFO  [celery.worker.strategy][MainThread] Received task: app_v1_1.tasks.push_notification[877906d8-1ea7-4b1f-8a54-aa61bffb40e8]
2015-08-18 16:39:45,094 ERROR [celery.worker.job][MainThread] Task app_v1_1.tasks.push_notification[877906d8-1ea7-4b1f-8a54-aa61bffb40e8] raised unexpected: TypeError("urlopen() got an unexpected keyword argument 'headers'",)
Traceback (most recent call last):
  File "/home/apnistreet/work/ve/local/lib/python2.7/site-packages/celery/app/trace.py", line 240, in trace_task
    R = retval = fun(*args, **kwargs)
  File "/home/comp/work/ve/local/lib/python2.7/site-packages/celery/app/trace.py", line 438, in __protected_call__
    return self.run(*args, **kwargs)
  File "/home/comp/work/site/code/apnistreet_v1_1/tasks.py", line …
Run Code Online (Sandbox Code Playgroud)

python urllib2 celery urlopen pyramid

0
推荐指数
1
解决办法
9222
查看次数

解码urllib.request响应

当我打开这个网址时,我收到了这个回复:

r = Request(r'http://airdates.tv/')
h = urlopen(r).readline()
print(h)
Run Code Online (Sandbox Code Playgroud)

响应:

b'\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x00\xed\xbdkv\xdbH\x96.\xfa\xbbj\x14Q\xaeuJ\xce\xee4E\x82\xa4(9m\xe7\xd2\xd3VZ\xaf2e\xab2k\xf5\xc2\n'
Run Code Online (Sandbox Code Playgroud)

这是什么编码?有没有办法根据标准库解码它?
提前感谢您对此事的任何见解!

PS:好像是gzip.

python urllib urllib2

0
推荐指数
1
解决办法
1092
查看次数