Glassdoor API 登录不适用于 Python,响应 403 Bots not allowed

Hoe*_*nie 0 python

不幸的是,我收到错误消息:HTTP 状态 403 - 使用以下 Python 代码时不允许机器人。

import requests

URL = 'http://api.glassdoor.com/api/api.htm?v=1&format=json&t.p={PartnerID}&t.k={Key}&action=employers&q=pharmaceuticals&userip={IP_address}&useragent=Mozilla/%2F4.0'

response = requests.get(URL)

print(response)
Run Code Online (Sandbox Code Playgroud)

当我从浏览器尝试 URL 时,该 URL 确实有效。我该怎么做才能让它从代码中工作?

更新:已解决。

抱歉没有以正确的方式发布问题(我是新来的)。

Ala*_*lan 5

根据此 StackOverflow 回答,您需要包含一个标头字段(请注意,此示例使用 urllib2 而不是请求):

import urllib2, sys
url = "http://api.glassdoor.com/api/api.htm?t.p=yourID&t.k=yourkey&userip=8.28.178.133&useragent=Mozilla&format=json&v=1&action=employers&q="
hdr = {'User-Agent': 'Mozilla/5.0'}
req = urllib2.Request(url,headers=hdr)
response = urllib2.urlopen(req)
Run Code Online (Sandbox Code Playgroud)

使用requests模块,它可能是:

import requests

URL = 'http://api.glassdoor.com/api/api.htm?v=1&format=json&t.p={PartnerID}&t.k={Key}&action=employers&q=pharmaceuticals&userip={IP_address}&useragent=Mozilla/%2F4.0'

headers = {'user-agent': 'Mozilla/5.0'}

response = requests.get(url, headers=headers)

print(response)
Run Code Online (Sandbox Code Playgroud)