草庐IT

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,这将重试该函数。检查上面的链接以获取有关参数的文档,但基本上它将重试

python - 无法在 python 中对 URL 进行 urllib.urlencode

为什么我在尝试对该字符串进行urlencode时收到此错误>>>callback="http://localhost/application/authtwitter?twitterCallback">>>urllib.urlencode(callback)Traceback(mostrecentcalllast):File"",line1,inFile"/usr/lib/python2.7/urllib.py",line1261,inurlencoderaiseTypeErrorTypeError:notavalidnon-stringsequenceormappingobject

python - Python 和 urllib2 的源接口(interface)

如何使用Python和urllib2设置源IP/接口(interface)? 最佳答案 不幸的是,正在使用的标准库模块堆栈(urllib2、httplib、socket)的设计有些糟糕——在操作的关键点,HTTPConnection.connect(在httplib中)委托(delegate)给socket.create_connection,这反过来又不会在创建套接字实例sock和sock.connect之间提供任何“Hook”调用,以便您在sock.connect之前插入sock.bind这是您设置源IP所需的(我正在广泛宣传不

python - urllib2 文件名

如果我使用urllib2打开一个文件,像这样:remotefile=urllib2.urlopen('http://example.com/somefile.zip')除了解析原始URL之外,有没有一种简单的方法来获取文件名?编辑:将openfile更改为urlopen...不确定这是怎么发生的。EDIT2:我最终使用了:filename=url.split('/')[-1].split('#')[0].split('?')[0]除非我弄错了,否则这也应该排除所有潜在的查询。 最佳答案 你是说urllib2.urlopen?您可能会

python - 如何向 urllib2 开启程序添加标题?

cj=cookielib.CookieJar()opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))opener.open('http://abc.com')opener.open('http://google.com')如您所见,我使用opener访问不同的网站,使用cookiejar。我可以设置一个header,以便每次访问网站时都应用header吗? 最佳答案 您可以将header直接添加到build_opener返回的OpenerDirector对象。来自u

Python 和 urllib2 : how to make a GET request with parameters

我正在构建一个“APIAPI”,它基本上是一个内部RESTWeb服务的包装器,Web应用程序将向该服务发出大量请求。一些Web服务调用需要是GET而不是post,而是传递参数。是否有“最佳实践”方法将字典编码为查询字符串?例如:?foo=bar&bla=blah我正在查看urllib2docs,并且看起来它会根据您是否传递参数自行决定使用POST还是GET,但也许有人知道如何使其将params字典转换为GET请求。也许外面有这样的包?如果它支持keep-alive那就太好了,因为Web服务器会不断地从REST服务请求东西。理想情况下,也可以将XML转换为某种可遍历的python对象。谢