我有以下代码:
import re
from re import sub
import cookielib
from cookielib import CookieJar
import urllib2
from urllib2 import urlopen
cj = CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
opener.addheaders=[('user-agent' , 'Safari/7.0.2')]
def check(word):
try:
query = "select * from geo.places where text ='"+word+"'"
sourceCode=opener.open('http://query.yahooapis.com/v1/public/yql?q='+query+'&diagnostics=true').read()
print sourceCode
except Exception, e:
print str(e)
print 'ERROR IN MAIN TRY'
myStr = ['I','went','to','Boston']
for item in myStr:
check(item)
我试图查询select * from geo.places where text = 'Boston'
(例如)。
我一直收到这个错误:
HTTP Error 505: HTTP Version Not Supported
ERROR IN MAIN TRY
什么会导致这个错误?我该如何解决?
不确定,出了什么问题,但是当我尝试使用
requests
库执行相同的操作时,它可以工作:注意,这是有区别的,我的代码要简单得多,它不适用于cookies,也不试图假装Safari浏览器。
如果您需要将cookies与
requests
一起使用,您将在那里找到非常好的支持。您构造的URL不是有效的URL。你送的是
URL中不应该有空格,例如,必须进行正确的URL编码(用“+”等替换空格)。我想请求只是帮你修复了错误的URL。
查询之间可能有空格。请求处理url中的空白,因此不必处理它。 只需将每个“”替换为%20即可使url正常工作。
相关问题 更多 >
编程相关推荐