Tag: urllib2

Python和urllib2:如何使用参数进行GET请求

我正在构build一个“API API”,它基本上是一个内部REST Web服务的包装,Web应用程序将提出很多请求。 一些Web服务调用需要GET而不是post,但是传递参数。 有没有一种“最佳实践”的方式来编码字典到查询string? 例如: ?foo=bar&bla=blah 我在看urllib2文档 ,它看起来像它自己决定使用POST或GET的基础上,如果您传递参数或不,但也许有人知道如何使其将params字典转换为GET请求。 也许有一个这样的东西在外面的包? 如果它支持保持活动,那将是非常好的,因为Web服务器将不断地向REST服务请求一些东西。 理想情况下,也会将XML转换成某种可遍历的python对象。 谢谢!

用Python获取维基百科文章

我试图用Python的urllib获取Wikipedia文章: f = urllib.urlopen("http://en.wikipedia.org/w/index.php?title=Albert_Einstein&printable=yes") s = f.read() f.close() 但是,而不是HTML页面,我收到以下回应:错误 – 维基媒体基金会: Request: GET http://en.wikipedia.org/w/index.php?title=Albert_Einstein&printable=yes, from 192.35.17.11 via knsq1.knams.wikimedia.org (squid/2.6.STABLE21) to () Error: ERR_ACCESS_DENIED, errno [No Error] at Tue, 23 Sep 2008 09:09:08 GMT 维基百科似乎阻止不是来自标准浏览器的请求。 任何人都知道如何解决这个问题?

通过url获取json数据并用于python(simplejson)

我想这必须有一个简单的答案,但我挣扎:我想要一个URL(其中输出JSON),并获取在Python中的可用字典中的数据。 我被困在最后一步。 >>> import urllib2 >>> import simplejson >>> req = urllib2.Request("http://vimeo.com/api/v2/video/38356.json", None, {'user-agent':'syncstream/vimeo'}) >>> opener = urllib2.build_opener() >>> f = opener.open(req) >>> f.read() # this works '[{"id":"38356","title":"Forgetfulness – Billy Collins Animated Poetry","description":"US Poet Laureate Billy Collins reads his poem ","url":"http:\\/\\/vimeo.com\\/38356","upload_date":"2006-01-24 15:21:03","thumbnail_small":"http:\\/\\/80.media.vimeo.com\\/d1\\/5\\/47\\/74\\/thumbnail-4774968.jpg","thumbnail_medium":"http:\\/\\/80.media.vimeo.com\\/d1\\/5\\/46\\/85\\/thumbnail-4685118.jpg","thumbnail_large":"http:\\/\\/images.vimeo.com\\/87\\/39\\/873998\\/873998_640x480.jpg","user_name":"smjwt","user_url":"http:\\/\\/vimeo.com\\/smjwt","user_portrait_small":"http:\\/\\/bitcast.vimeo.com\\/vimeo\\/portraits\\/defaults\\/d.30.jpg","user_portrait_medium":"http:\\/\\/bitcast.vimeo.com\\/vimeo\\/portraits\\/defaults\\/d.75.jpg","user_portrait_large":"http:\\/\\/bitcast.vimeo.com\\/vimeo\\/portraits\\/defaults\\/d.100.jpg","user_portrait_huge":"http:\\/\\/bitcast.vimeo.com\\/vimeo\\/portraits\\/defaults\\/d.300.jpg","stats_number_of_likes":"281","stats_number_of_plays":"9173","stats_number_of_comments":23,"duration":"112","width":"320","height":"240","tags":"poetry, poet, online poetry, famous poet, video poetry, modern poetry, famous poem, poetry sites, […]

使用urllib2进行POST调用而不是GET

在urllib2和POST调用中有很多东西,但是我遇到了一个问题。 我试图做一个简单的POST调用服务: url = 'http://myserver/post_service' data = urllib.urlencode({'name' : 'joe', 'age' : '10'}) content = urllib2.urlopen(url=url, data=data).read() print content 我可以看到服务器日志,它说,我正在做GET调用,当我发送数据参数到urlopen。 该库正在提出一个404错误(未find),这是GET调用是正确的,POST调用处理得很好(我也尝试在HTML表单中的POST)。 任何线索都会被折服

Python的`urllib2`:为什么我在urlopen维基百科页面时出现错误403?

尝试从维基百科浏览某个页面时遇到了一个奇怪的错误。 这是页面: http://en.wikipedia.org/wiki/OpenCola_(drink) 这是shell会话: >>> f = urllib2.urlopen('http://en.wikipedia.org/wiki/OpenCola_(drink)') Traceback (most recent call last): File "C:\Program Files\Wing IDE 4.0\src\debug\tserver\_sandbox.py", line 1, in <module> # Used internally for debug sandbox under external interpreter File "c:\Python26\Lib\urllib2.py", line 126, in urlopen return _opener.open(url, data, timeout) File "c:\Python26\Lib\urllib2.py", line 397, in open response = meth(req, response) File "c:\Python26\Lib\urllib2.py", line 510, […]

如何使用urllib2制作HTTP DELETE方法?

urllib2是否支持DELETE或PUT方法? 如果是,请提供任何示例。 我需要使用活塞API。

我如何使用urllib2的SOCKS 4/5代理?

如何使用urllib2的SOCKS 4/5代理下载网页?

如何在HTTP请求中使用urllib2发送自定义标题?

我想在使用urllib2.urlopen(..)时在我的请求中发送一个自定义的“Accept”头。 我怎么做?

Python:urllib / urllib2 / httplib混淆

我试图通过在Python中编写login序列来testingWeb应用程序的function,但是我遇到了一些麻烦。 以下是我需要做的事情: 用一些参数和标题做一个POST。 遵循redirect 检索HTML正文。 现在,我相对比较新的python,但我迄今为止testing的两件事情没有奏效。 首先,我使用了httplib和putrequest()(在URL中传递参数)和putheader()。 这似乎没有遵循redirect。 然后我尝试urllib和urllib2,传递标题和参数作为字典。 这似乎返回login页面,而不是我正在尝试login的页面,我想这是因为缺lesscookie或其他东西。 我错过了一些简单的东西吗 谢谢。

AttributeError(“'str'对象没有属性'read'”)

在Python中,我收到一个错误: Exception: (<type 'exceptions.AttributeError'>, AttributeError("'str' object has no attribute 'read'",), <traceback object at 0x1543ab8>) 鉴于python代码: def getEntries (self, sub): url = 'http://www.reddit.com/' if (sub != ''): url += 'r/' + sub request = urllib2.Request (url + '.json', None, {'User-Agent' : 'Reddit desktop client by /user/RobinJ1995/'}) response = urllib2.urlopen (request) jsonofabitch = response.read () return json.load […]