Python使用参数使用URL请求调用

johan855

我正在尝试调用import.io API。该调用必须具有以下结构:

' https://extraction.import.io/query/extractor/ {{crawler_id}}?_ apikey = xxx&url = http://www.example.co.uk/items.php?sortby=Price_LH&per_page=96&size=1%2C12&page = 35 '

您可以在该调用中看到,还必须包含参数“ url”:

http://www.example.co.uk/items.php?sortby=Price_LH&per_page=96&size=1%2C12&page=35

碰巧这个辅助URL也需要参数。但是,如果像上面的示例那样将其作为普通字符串传递,则当我获得API响应时,API响应仅包括第一个参数之前的部分:

http://www.example.co.uk/items.php?sortby=Price_LH

这是不正确的,似乎是使用不完整的URL而不是我传入的URL进行呼叫。

我正在使用Python,并要求以以下方式进行调用:

import requests
import json

row_dict = {'url': u'http://www.example.co.uk/items.php?sortby=Price_LH&per_page=96&size=1%2C12&page=35', 'crawler_id': u'zzz'}
url_call = 'https://extraction.import.io/query/extractor/{0}?_apikey={1}&url={2}'.format(row_dict['crawler_id'], auth_key, row_dict['url'])
r = requests.get(url_call)
rr = json.loads(r.content)

当我打印重新使用时:

"url" : "http://www.example.co.uk/items.php?sortby=Price_LH",

但是当我打印r.url时:

https://extraction.import.io/query/extractor/zzz?_apikey=xxx&url=http://www.example.co.uk/items.php?sortby=Price_LH&per_page=96&size=1%2C12&page=35

因此,在URL中似乎一切正常,但在响应中却没有。

我尝试了其他URL,但在第一个参数之后都被删减了。

Bam4d

您将需要对要发送给API的URL进行URL编码

原因是服务器将“&”解释为URL https://extraction.import.io/query/extractor/XXX的参数标记

这就是为什么它们在URL中被剥夺的原因:

http://www.example.co.uk/items.php?sortby=Price_LH

使用以下方法尝试以下方法urllib.quote(row_dict['url'])

import requests
import json
import urllib

row_dict = {'url': u'http://www.example.co.uk/items.php?sortby=Price_LH&per_page=96&size=1%2C12&page=35', 'crawler_id': u'zzz'}
url_call = 'https://extraction.import.io/query/extractor/{0}?_apikey={1}&url={2}'.format(row_dict['crawler_id'], auth_key, urllib.quote(row_dict['url']))
r = requests.get(url_call)
rr = json.loads(r.content)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用url中的参数调用json请求

来自分类Dev

在Axion请求中使用url参数

来自分类Dev

在 POST 请求中使用 url 参数

来自分类Dev

使用Python请求调用Java Web服务

来自分类Dev

Python-请求:正确使用参数?

来自分类Dev

Python请求:指定参数时使用列表

来自分类Dev

如何使用 JSON 数组作为参数调用 JAVA GET 请求

来自分类Dev

如何使用Bottle-python使GET或POST请求的API接受URL作为参数

来自分类Dev

在python上使用参数调用函数

来自分类Dev

使用参数从Matlab调用Python脚本

来自分类Dev

Python:使用n个参数调用函数

来自分类Dev

从Python使用默认参数调用C ++函数

来自分类Dev

使用参数从 TCL 脚本调用 Python 函数

来自分类Dev

使用Python请求库构建URL

来自分类Dev

使用Python请求提取href URL

来自分类Dev

使用Python请求提取href URL

来自分类Dev

如何使用Spring MVC在URL中隐藏请求参数值

来自分类Dev

如何在Angular的GET请求中使用URL参数?

来自分类Dev

使用Rails无法通过Ajax请求中的url传递参数

来自分类Dev

使用参数调用resx

来自分类Dev

使用参数调用VBScript

来自分类Dev

使用参数调用方法

来自分类Dev

使用多个参数在JQuery中调用Url.Action

来自分类Dev

API:在Python中使用curl调用URL

来自分类Dev

使用ctypes从Python使用Char **参数调用C方法

来自分类Dev

使用Python和PySpark提取URL参数

来自分类Dev

如何使用python请求调用Twitter oEmbed API?

来自分类Dev

对axios请求使用动态参数

来自分类Dev

使用Retrofit,URL中的参数带有由&附加的参数的GET请求