草庐IT

python - 标签为空或太长 - python urllib2

我有一个奇怪的情况:我正在像这样curl网址:defcheck_urlstatus(url):h=httplib2.Http()try:resp=h.request("http://"+url,'HEAD')ifint(resp[0]['status'])如果我尝试使用以下方法进行测试:ifcheck_urlstatus('.f.de')=="bad":#它在说:UnicodeError:labelemptyortoolong我在这里造成的问题是什么?编辑:这里是idna的追溯。我猜,它试图通过.拆分输入,在这种情况下,第一个标签是空的,这是第一个.之前的速度。

python - Python urllib.urlretrieve() 和 wget 的区别

我正在尝试使用Python检索一个500mb的文件,并且我有一个使用urllib.urlretrieve()的脚本。我和下载站点之间似乎存在一些网络问题,因为此调用一直挂起并且无法完成。但是,使用wget检索文件往往没有问题。urlretrieve()和wget之间有什么区别会导致这种差异? 最佳答案 答案很简单。Python的urllib和urllib2远未达到应有的成熟和健壮。根据我的经验,甚至比wget更好的是cURL。我编写的代码可以通过HTTP下载数GB的文件,文件大小从50KB到2GB以上不等。据我所知,cURL是目前地

python - 使用 Python urllib/urllib2 发出 http POST 请求以上传文件

我想使用Python发出POST请求以将文件上传到Web服务(并获得响应)。例如,我可以使用curl执行以下POST请求:curl-F"file=@style.css"-Foutput=jsonhttp://jigsaw.w3.org/css-validator/validator如何使用pythonurllib/urllib2发出相同的请求?到目前为止我得到的最接近的是:withopen("style.css",'r')asf:content=f.read()post_data={"file":content,"output":"json"}request=urllib2.Reque

python - urllib2 没有检索整个 HTTP 响应

我很困惑为什么我不能从FriendFeed下载一些JSON响应的全部内容。使用urllib2.>>>importurllib2>>>stream=urllib2.urlopen('http://friendfeed.com/api/room/the-life-scientists/profile?format=json')>>>stream.headers['content-length']'168928'>>>data=stream.read()>>>len(data)61058>>>#WecanseeherethatIdidnotretrievethefullJSON...#giv

python - 与 urllib2 或其他 http 库的多个(异步)连接?

我有这样的代码。forpinrange(1,1000):result=FalsewhileresultisFalse:ret=urllib2.Request('http://server/?'+str(p))try:result=process(urllib2.urlopen(ret).read())except(urllib2.HTTPError,urllib2.URLError):passresults.append(result)我想同时提出两三个请求来加速这个过程。我可以为此使用urllib2吗?如何使用?如果不是,我应该使用哪个其他库?谢谢。 最佳

Python - 使用 Python 3 urllib 发出 POST 请求

我正在尝试向以下页面发出POST请求:http://search.cpsa.ca/PhysicianSearch为了模拟单击“搜索”按钮而不填写任何表单,这会将数据添加到页面。在查看Chrome开发人员工具中的网络选项卡时,我通过单击按钮获得了POSTheader信息。我发布这个而不是仅仅复制其他类似问题的解决方案的原因是我相信我可能没有得到正确的标题信息。它的格式是否正确,我是否获取了正确的信息?我以前从未发出过POST请求。这是我设法拼凑起来的:importurllib.parseimporturllib.requestdata=urllib.parse.urlencode({'H

python - urllib2.urlopen() 缓存东西吗?

他们没有在python文档中提到这一点。最近我正在测试一个网站,只是使用urllib2.urlopen()刷新网站以提取某些内容,有时我注意到当我更新网站时urllib2.urlopen()似乎没有获得新添加的内容。所以我想知道它确实在某处缓存了东西,对吧? 最佳答案 SoIwonderitdoescachestuffsomewhere,right?事实并非如此。如果您没有看到新数据,可能有多种原因。出于性能原因,大多数较大的Web服务都使用服务器端缓存,例如使用Varnish和Squid等缓存代理或应用程序级缓存。如果问题是由服务

python - 使用 Python 和 urllib2 进行 Windows 身份验证

我想从需要我的Windows用户名和密码的网页上获取一些数据。到目前为止,我有:opener=build_opener()try:page=opener.open("http://somepagewhichneedsmywindowsusernameandpassword/")printpageexceptURLError:print"Ohnoes."urllib2支持吗?我找到了PythonNTLM,但这需要我输入我的用户名和密码。是否有任何方法可以以某种方式获取身份验证信息(例如,如果我更改了network.automatic-ntlm-auth.trusted-,就像IE或Fir

python - 如何通过 TOR 网络路由 urllib 请求?

这个问题在这里已经有了答案:Howtomakeurllib2requeststhroughTorinPython?(12个答案)关闭6年前。如何通过TOR网络路由urllib请求?

python - 无法使用 urllib2 将内容类型设置为 application/json

这个小宝贝:importurllib2importsimplejsonasjsonopener=urllib2.build_opener()opener.addheaders.append(('Content-Type','application/json'))response=opener.open('http://localhost:8000',json.dumps({'a':'b'}))产生以下请求(如使用ngrep所见):sudongrep-q-dlo'^POST.*localhost:8000'T127.0.0.1:51668->127.0.0.1:8000[AP]POST/