如何使用带有urllib2的SOCKS4/5代理来下载网页? 最佳答案 您可以使用SocksiPy模块。只需将文件“socks.py”复制到Python的lib/site-packages目录,就可以开始了。你必须在urllib2之前使用socks。(试试pipinstallPySocks)例如:importsocksimportsocketsocks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5,"127.0.0.1",8080)socket.socket=socks.socksocketimpo
我正在尝试通过拼写Python中的登录顺序来测试Web应用程序的功能,但是我遇到了一些麻烦。这是我需要做的:在带有几个参数和标题的帖子中。遵循重定向检索HTML主体。现在,我对python相对较新,但是到目前为止我测试的两件事还没有起作用。首先,我使用httplib,带有putrequest()(在URL中传递参数)和putheader()。这似乎没有遵循重定向。然后,我尝试了Urllib和Urllib2,并按照DICC的方式传递标题和参数。这似乎返回登录页面,而不是我要登录的页面,我想这是因为缺乏cookie或其他内容。我错过了简单的东西吗?谢谢。 最佳答
关于urllib2和POST调用有很多东西,但我遇到了一个问题。我正在尝试对服务进行简单的POST调用:url='http://myserver/post_service'data=urllib.urlencode({'name':'joe','age':'10'})content=urllib2.urlopen(url=url,data=data).read()printcontent当我发送数据时,我可以看到服务器日志,它说我正在执行GET调用urlopen的参数。库引发404错误(未找到),这对于GET调用是正确的,POST调用处理良好(我也在尝试在HTML表单中使用POST)。
urllib.urlretrieve即使远程http服务器上不存在该文件,它也会静默返回,它只是将一个html页面保存到命名文件中。例如:urllib.urlretrieve('http://google.com/abc.jpg','abc.jpg')只是静默返回,即使google.com服务器上不存在abc.jpg,生成的abc.jpg也不是有效的jpg文件,它实际上是一个html页面。我猜返回的header(httplib.HTTPMessage实例)可用于实际判断检索是否成功,但我找不到httplib.HTTPMessage的任何文档。谁能提供一些关于这个问题的信息?
什么时候有人会使用httplib,什么时候会使用urllib?有什么区别?我想我准备好urllib使用httplib,我正计划制作一个需要发出http请求的应用程序,到目前为止,我只在python中使用httplib.HTTPConnection来处理请求,并且阅读了有关urllib的信息,我发现我可以将它用于也有要求,那么其中一个有什么好处? 最佳答案 urllib(尤其是urllib2)默认处理很多事情,或者有适当的库来处理。例如,urllib2将自动跟随重定向,您可以使用cookiejar来处理登录脚本。如果您使用httpli
我有以下代码可以回发到远程URL:request=urllib2.Request('http://www.example.com',postBackData,{'User-Agent':'MyUserAgent'})try:response=urllib2.urlopen(request)excepturllib2.HTTPError,e:checksLogger.error('HTTPError='+str(e.code))excepturllib2.URLError,e:checksLogger.error('URLError='+str(e.reason))excepthttpl
我在urllib2的urlopen中使用timeout参数。urllib2.urlopen('http://www.example.org',timeout=1)我如何告诉Python如果超时到期,应该引发自定义错误?有什么想法吗? 最佳答案 在极少数情况下您想使用except:。这样做会捕获any异常,这可能很难调试,它会捕获异常,包括SystemExit和KeyboardInterupt,这会使您的程序烦人使用..在最简单的情况下,您会捕获urllib2.URLError:try:urllib2.urlopen("http://
我想在使用urllib2.urlopen(..)时在我的请求中发送一个自定义的“Accept”header。我该怎么做? 最佳答案 不完全是。创建Request对象实际上并不发送请求,并且Request对象没有Read()方法。(另外:read()是小写的。)您需要做的就是将Request作为第一个参数传递给urlopen()并且会给你你的回应。importurllib2request=urllib2.Request("http://www.google.com",headers={"Accept":"text/html"})con
我是Python新手,正在阅读别人的代码:urllib.urlopen()后面应该跟urllib.close()吗?否则,会泄漏连接,对吗? 最佳答案 close方法必须在urllib.urlopen的result上调用,不是在urllib上您正在考虑的模块本身(正如您提到的urllib.close-它不存在)。最好的方法:而不是x=urllib.urlopen(u)等等,使用:importcontextlibwithcontextlib.closing(urllib.urlopen(u))asx:...usexatwillhere
我正在使用urllib2通过HTTP获取页面。有时,当我的请求包含错误时,资源会引发HTTP错误400(错误请求)。但是,该响应还包含一个提供详细错误消息的XML元素。能够看到该错误而不仅仅是urllib2返回的HTTPError异常会非常方便。如何在异常情况下返回文档内容? 最佳答案 importurllib2try:request=urllib2.Request('http://www.somesite.com')response=urllib2.urlopen(req)excepturllib2.HTTPErrorase:er