Python 3.x 当我使用pycurl执行curl命令时,我得到错误3“;在URL“中发现非法字符”;但当把这个URL粘贴到Chome中时,它就可以被解析了
你好。我正在编写一个python程序,从我的Facebook页面请求一些帖子。为此,Facebook提供了一个他们称之为“GraphAPI浏览器”的工具。使用类似于GET请求的东西,我可以得到我想要的任何东西(只要我有访问权和有效的令牌)。我为GraphAPI浏览器提出了自己的解决方案,这就是生成URL。生成URL后,我使用pycurl从Facebook获取包含我所有数据的JSON对象 使用pycurl时,会出现以下错误:Python 3.x 当我使用pycurl执行curl命令时,我得到错误3“;在URL“中发现非法字符”;但当把这个URL粘贴到Chome中时,它就可以被解析了,python-3.x,facebook,curl,pycurl,Python 3.x,Facebook,Curl,Pycurl,你好。我正在编写一个python程序,从我的Facebook页面请求一些帖子。为此,Facebook提供了一个他们称之为“GraphAPI浏览器”的工具。使用类似于GET请求的东西,我可以得到我想要的任何东西(只要我有访问权和有效的令牌)。我为GraphAPI浏览器提出了自己的解决方案,这就是生成URL。生成URL后,我使用pycurl从Facebook获取包含我所有数据的JSON对象 使用pycurl时,会出现以下错误: pycurl.error:(3,“URL中发现非法字符”) 但是,当打印
pycurl.error:(3,“URL中发现非法字符”)
但是,当打印所述URL并将其粘贴到浏览器时,我得到了有效的响应
URL:https://graph.facebook.com/v7.0/me?fields=posts%7Bmessage%2Cfrom%7D&access_token=
我的代码如下所示:
def get_posts_curl(nodes=['posts'], fields=[['message', 'from']], token_file='Facebook/token.txt'):
curl = pycurl.Curl()
response = BytesIO()
token = get_token_from_file(token_file)
# constructing request.
url = parse_facebook_url_request(nodes, fields, token)
url = convert_to_curl(url)
print("---URL---: " + url)
# curl session and settings.
curl.setopt(curl.CAINFO, certifi.where())
curl.setopt(curl.URL, url)
curl.setopt(curl.WRITEDATA, response)
curl.perform()
curl.close()
return response.getvalue().decode('utf-8')
错误会在curl.perform()
一些可能相关的信息:
刚才一切都很顺利。在将我的程序从我的工作站(运行Windows10)转移到我的服务器(Ubuntu18.04服务器)之后,一切都很正常,我把这个项目放到了一边。只是现在错误弹出,我已经有一段时间没有接触项目了。似乎是令牌导致了问题。我已经尝试了大约100个代币,有些造成了问题,有些没有。另外,解决这一切的修复程序是使用urllib3.unquote
from urllib.parse import unquote
...
url = unquote(url)
你应该逃离代币。