0
class Crawl(webapp2.RequestHandler):    
    def get(self):      
            from google.appengine.api import urlfetch
            url = "http://www.example.com/path/to a/page" #URL with a space
            result = urlfetch.fetch(url)
            self.response.write('url: %s' % (result.status_code)) ## Outputs 400
            self.response.write(content) # Gives me 400 error page

我们不能否认有成千上万个 URL 包含空格。我们无法一一纠正。

为什么 urlfetch 对于这种可以通过浏览器完全访问的 URL 得到 400 bad request 错误?如何克服这一点?

4

1 回答 1

4

这是因为 URL 需要正确编码(如下所述)。确保任何带有空格的 url 都用 a%20代替任何空格正确编码。

于 2013-06-16T22:38:20.877 回答