当前位置: 首页 > 面试题库 >

Python:urllib / urllib2 / httplib混淆

慕迪
2023-03-14
问题内容

我正在尝试通过在Python中编写登录序列脚本来测试Web应用程序的功能,但遇到了一些麻烦。

这是我需要做的:

  1. 使用一些参数和标头执行POST。
  2. 跟随重定向
  3. 检索HTML正文。

现在,我对python还是比较陌生,但是到目前为止我测试过的两件事都没有用。首先,我将httplib与putrequest()(在URL中传递参数)和putheader()一起使用。这似乎没有遵循重定向。

然后,我尝试使用urllib和urllib2,同时将标头和参数作为字典传递。这似乎返回了登录页面,而不是我要登录的页面,我想这是因为缺少cookie或其他东西。

我是否缺少简单的东西?

谢谢。


问题答案:

着眼于urllib2这一点,它工作得很好。请勿混淆httplib,它不是顶级API。

您要注意的是urllib2不遵循重定向。

您需要折叠一个实例HTTPRedirectHandler,以捕获并遵循重定向。

此外,您可能想对默认值进行子类化,HTTPRedirectHandler以捕获信息,然后将其作为单元测试的一部分进行检查。

cookie_handler= urllib2.HTTPCookieProcessor( self.cookies )
redirect_handler= HTTPRedirectHandler()
opener = urllib2.build_opener(redirect_handler,cookie_handler)

然后,您可以使用此opener对象进行POST和GET,正确处理重定向和cookie。

您可能还想添加自己的子类HTTPHandler以捕获并记录各种错误代码。



 类似资料:
  • 问题内容: 我正在寻找关于线程安全信息和。官方文档(http://docs.python.org/library/urllib2.html和http://docs.python.org/library/httplib.html)缺少有关此主题的任何信息。那里甚至没有提到 线程 一词… 更新 好的,它们不是线程安全的。使它们具有线程安全性需要什么,或者存在使它们具有线程安全性的情况?我问是因为好像

  • 本文向大家介绍Python urllib、urllib2、httplib抓取网页代码实例,包括了Python urllib、urllib2、httplib抓取网页代码实例的使用技巧和注意事项,需要的朋友参考一下 使用urllib2,太强大了 试了下用代理登陆拉取cookie,跳转抓图片...... 文档:http://docs.python.org/library/urllib2.html 直接上

  • HttpLib 可以用来简化在 C# 应用中异步的访问 Web 服务的操作。同时包含文件上传和访问网页的方法。 支持: GET POST Form Encoded Multipart File Upload PUT HEAD DELETE 示例代码: using Redslide.HttpLib;Request.Get("http://www.oschina.net/", result=>{

  • 问题内容: 我正在使用python为elgg编写REST客户端,即使请求成功,我也会得到以下响应: 看着标题,我看到了(’content- length’,‘5749’),所以我知道那里有一个页面,但是由于出现异常,所以我无法使用.read()来查看它。ResponseNotReady是什么意思,为什么我看不到返回的内容? 问题答案: 确保不重用先前连接中的同一对象。服务器 保持活动状态 结束并且

  • 问题内容: 运行test.py时出现此错误 如何纠正? test.py的 代码块: 问题答案: 您正在Python 3上运行Python 2代码。在Python 3中,该模块已重命名为。 您可以尝试在代码上运行该工具,并尝试使其自动翻译。对的引用将自动重写为使用。

  • 问题内容: 何时会使用httplib和urllib? 有什么区别? 我想我已经准备好urllib使用httplib了,我计划制作一个需要发出http请求的应用程序,到目前为止,我只在python中使用了httplib.HTTPConnection来进行请求,并且阅读了有关urllib的信息,我也可以将其用于请求中,那么一个或另一个的好处是什么? 问题答案: urllib(尤其是urllib2)默认