用于正文文本的Stackoverflow搜索API

时间:2019-04-29 16:50:57

标签: stackexchange-api

我正在一个项目中,以识别stackoverflow问题正文中的某些文本。它有效,但在这种情况下,它不起作用。我正在查看是否可以通过代码找到适用于AWS的公开访问密钥,以了解情况的严重性。这是代码:

headers = {'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
               'Accept-Encoding': 'gzip, deflate',
               'Accept-Language': 'en-US,en;q=0.5',
              }

url = 'https://api.stackexchange.com/2.2/search/advanced?order=desc&sort=activity&body=' + 'AKIAIHXBFL3ATI64QPAQ' + '&site=stackoverflow'

req = urllib.request.Request(url, headers=headers)
response = urllib.request.urlopen(req)
time.sleep(3)

if response.info().get('Content-Encoding') == 'gzip':
    pagedata = gzip.decompress(response.read())
elif response.info().get('Content-Encoding') == 'deflate':
    pagedata = response.read()
elif response.info().get('Content-Encoding'):
    print('Encoding type unknown')
else:
    pagedata = response.read()

soup = BeautifulSoup(pagedata, "lxml")
print(soup)

这是汤的反应:

<html><body><p>{"items":[],"has_more":false,"quota_max":300,"quota_remaining":291}</p></body></html>

返回并清空文件。如果我在body = **参数中搜索其他文本,它的确会显示大量内容。我是在做错什么还是API无法对此文本进行文本搜索?谢谢您的帮助

1 个答案:

答案 0 :(得分:1)

这看起来像是另一个API错误。

一种解决方法是改用test参数:
/2.2/search/advanced?q=AKIAIHXBFL3ATI64QPAQ&site=stackoverflow

this live site search的结果相同。 (目前有2个问题)


请注意,无论如何,都不会在目标文本中找到答案 。 API对此不利。

SEDE可以在问题和答案中都找到文本,但结果可能长达一周。