【问题标题】:Python crawler issuePython爬虫问题
【发布时间】:2018-07-06 15:43:56
【问题描述】:

我有一个似乎无法解决的问题,我希望这里的人可能有另一个想法可以帮助我。

我的计划是从 comtrade 抓取多个国家和时间范围的数据,但即使我的第一个电话也无法正常工作。我要发送获取请求的 URL 是 http://comtrade.un.org/api/get?&r=32&freq=A&ps=2013&px=H4&cc=AG6&type=C&rg=2&p=0&head=M,如果我在邮递员中输入此数据,我会得到包含大量数据集的正确响应,但如果我尝试从 python 中获取响应,则会得到响应

"{'Message': '不允许使用空参数或空值。更多信息请访问http://comtrade.un.org/data/doc/api/'}"

相反。 API 不进行任何身份验证,我没有设置任何标题或对邮递员进行任何其他类型的更改,但它可以工作。

请查看我的代码并告诉我我做错了什么。我错过了什么吗?

您可以自己尝试使用上述 URL 每小时最多 100 次,也许您会找到一种方法:)

我的代码:

import json
import requests
url = "http://comtrade.un.org/api/get?&r=32&freq=A&ps=2013&px=H4&cc=AG6&type=C&rg=2&p=0&head=M"
f = requests.get(url, timeout=300)
x = json.loads(f.text)
print(x)

【问题讨论】:

    标签: python web-crawler postman


    【解决方案1】:

    url 格式错误,应将?& 替换为?,这样正确的url 变为: https://comtrade.un.org/api/get?r=32&freq=A&ps=2013&px=H4&cc=AG6&type=C&rg=2&p=0&head=M

    【讨论】:

    • 我认为 Postman 在发送请求之前会自动修复 uri,这就是它可能在 Postman 中工作的原因。这回答了你的问题吗?
    • 非常感谢,是的,它是邪恶的“&”字符。它现在可以工作了:)
    【解决方案2】:
    import json
    import requests
    url = "http://comtrade.un.org/api/get?r=32&freq=A&ps=2013&px=H4&cc=AG6&type=C&rg=2&p=0&head=M"
    f = requests.get(url, timeout=300)
    x = json.loads(f.text)
    print(x)
    

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多