草庐IT

python - 为不同的响应模拟 urllib2.urlopen().read()

我正在尝试以某种方式模拟urllib2.urlopen库,以便我应该对传递给函数的不同url获得不同的响应。我现在在我的测试文件中的做法是这样的@patch(othermodule.urllib2.urlopen)defmytest(self,mock_of_urllib2_urllopen):a=Mock()a.read.side_effect=["response1","response2"]mock_of_urllib2_urlopen.return_value=aothermodule.function_to_be_tested()#thisisthefunctionwhich

python - Unicode解码错误: 'utf-8' codec can't decode byte error

我正在尝试从urllib获取响应并对其进行解码为可读格式。文本为希伯来语,还包含{和/等字符首页编码为:#-*-coding:utf-8-*-原始字符串是:b'\xff\xfe{\x00\x00\r\x00\n\x00"\x00i\x00d\x00"\x00\x00:\x00\x00"\x001\x004\x000\x004\x008\x003\x000\x000\x006\x004\x006\x009\x006\x00"\x00,\x00\r\x00\n\x00"\x00t\x00i\x00t\x00l\x00e\x00"\x00\x00:\x00\x00"\x00\xe4\x05\

python - urllib2 POST进度监控

我正在通过POST将一个带有urllib2的相当大的文件上传到服务器端脚本。我想显示一个进度指示器,显示当前上传进度。是否有urllib2提供的Hook或回调允许我监控上传进度?我知道您可以通过连续调用连接的read()方法来下载,但我没有看到write()方法,您只需将数据添加到请求即可。 最佳答案 这是可能的,但你需要做一些事情:伪造urllib2子系统,通过附加一个__len__属性将文件句柄向下传递给httplib,这使得len(data)返回正确的大小,用于填充内容长度header。覆盖文件句柄上的read()方法:当ht

python - urllib.request.urlopen 出现 500 错误

以下代码:req=urllib.request.Request(url=r"http://borel.slu.edu/cgi-bin/cc.cgi?foirm_ionchur=im&foirm=Seol&hits=1&format=xml",headers={'User-Agent':'Mozilla/5.0(WindowsNT6.1;WOW64;rv:12.0)Gecko/20100101Firefox/12.0'})handler=urllib.request.urlopen(req)给我以下异常:Traceback(mostrecentcalllast):File"C:/User

python - 如何在 Python 中使用 Google Shortener API

我想写一个应用程序来缩短网址。这是我的代码:importurllib,urllib2importjsondefgoo_shorten_url(url):post_url='https://www.googleapis.com/urlshortener/v1/url'postdata=urllib.urlencode({'longUrl':url})headers={'Content-Type':'application/json'}req=urllib2.Request(post_url,postdata,headers)ret=urllib2.urlopen(req).read()r

python - 带有身份验证的 urllib.request.urlopen(url)

这几天一直在玩美汤和解析网页。我一直在使用一行代码,它是我编写的所有脚本中的救星。代码行是:r=requests.get('some_url',auth=('my_username','my_password')).但是...我想用(打开一个带有身份验证的URL)做同样的事情:(1)sauce=urllib.request.urlopen(url).read()(1)(2)soup=bs.BeautifulSoup(sauce,"html.parser")(2)我无法打开url并读取需要身份验证的网页。我如何实现这样的目标:(3)sauce=urllib.request.urlopen

python - 如何在 Python 的 HTTP header 中设置和检索 cookie?

我需要从服务器发送的HTTP响应中获取cookie,并将其放入下一个请求的header中。我该怎么做?提前致谢。 最佳答案 你应该使用cookielibmodule与urllib。它将在请求之间存储cookie,您可以将它们加载/保存在磁盘上。这是一个例子:importcookielibimporturllib2cookies=cookielib.LWPCookieJar()handlers=[urllib2.HTTPHandler(),urllib2.HTTPSHandler(),urllib2.HTTPCookieProcess

python - 为什么在尝试打印时出现 AttributeError

我正在按照本教程学习urllib2http://docs.python.org/howto/urllib2.html#urlerror运行下面的代码会产生与教程不同的结果importurllib2req=urllib2.Request('http://www.pretend-o-server.org')try:urllib2.urlopen(req)excepturllib2.URLError,e:printe.reasonPython解释器吐回这个Traceback(mostrecentcalllast):File"urlerror.py",line8,inprinte.reason

python - 为什么urllib.urlopen.read()与源码不对应?

我正在尝试获取以下网页:importurlliburllib.urlopen("http://www.gallimard-jeunesse.fr/searchjeunesse/advanced/(order)/author?catalog[0]=1&SearchAction=1").read()结果与我在使用GoogleChrome检查网页源代码时看到的结果不一致。您能告诉我为什么会发生这种情况以及我如何改进我的代码来解决这个问题吗?感谢您的帮助。 最佳答案 您从urlopen获得的是原始网页,这意味着没有执行javascript没

Python urllib2.urlopen() 很慢,需要一个更好的方法来读取多个 url

正如标题所示,我正在开发一个用python编写的网站,它会多次调用urllib2模块来读取网站。然后我用BeautifulSoup解析它们。由于我必须阅读5-10个站点,因此页面需要一段时间才能加载。我只是想知道是否有一种方法可以同时阅读所有站点?或者任何让它更快的技巧,比如我应该在每次阅读后关闭urllib2.urlopen还是保持打开状态?已添加:此外,如果我只是切换到php,从其他站点获取和解析HTML和XML文件会更快吗?我只是想让它加载得更快,而不是目前需要大约20秒 最佳答案 我正在使用threading和Queue等现