我正在做一个项目,以识别堆栈溢出问题正文中的某些文本。它有效,但对于这种情况,它不起作用。我正在寻找是否可以通过代码找到 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 无法进行此特定文本搜索?
看起来像另一个API错误。
解决方法是改用 q
参数:
/2.2/search/advanced?q=AKIAIHXBFL3ATI64QPAQ&site=stackoverflow
这将给出与此实时站点搜索相同的结果。 (目前有2个问题(
请注意,无论如何,这都不会找到目标文本的答案。API 对此没有好处。
SEDE 可以在问题和答案中找到文本,但结果可能长达一周。