Stack Overflow 搜索 API 以查找正文中的文本
Stack Overflow search API for text in body
我正在开展一个项目,以识别 Stack Overflow 问题正文中的某些文本。它有效,但对于这种情况,它不起作用。我正在查看是否可以通过代码找到 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=Whosebug'
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)
这是来自 soup 的回复:
<html><body><p>{"items":[],"has_more":false,"quota_max":300,"quota_remaining":291}</p></body></html>
它 returns 和空文件。如果我在 body=**
参数中搜索其他文本,它会返回大量内容。是我做错了什么,还是 API 无法进行此特定的文本搜索?
这看起来像是另一个 API 错误。
解决方法是改用 q
参数:
/2.2/search/advanced?q=AKIAIHXBFL3ATI64QPAQ&site=Whosebug
这给出了与 this live site search 相同的结果。 (目前有 2 个问题)
请注意,无论如何,这不会找到包含目标文本的答案。 API 对此没有好处。
SEDE 可以在问题和答案中找到文本,但结果可能长达一周。
我正在开展一个项目,以识别 Stack Overflow 问题正文中的某些文本。它有效,但对于这种情况,它不起作用。我正在查看是否可以通过代码找到 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=Whosebug'
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)
这是来自 soup 的回复:
<html><body><p>{"items":[],"has_more":false,"quota_max":300,"quota_remaining":291}</p></body></html>
它 returns 和空文件。如果我在 body=**
参数中搜索其他文本,它会返回大量内容。是我做错了什么,还是 API 无法进行此特定的文本搜索?
这看起来像是另一个 API 错误。
解决方法是改用 q
参数:
/2.2/search/advanced?q=AKIAIHXBFL3ATI64QPAQ&site=Whosebug
这给出了与 this live site search 相同的结果。 (目前有 2 个问题)
请注意,无论如何,这不会找到包含目标文本的答案。 API 对此没有好处。
SEDE 可以在问题和答案中找到文本,但结果可能长达一周。