【问题标题】:Stack Overflow search API for text in body用于正文中文本的 Stack Overflow 搜索 API
【发布时间】:2019-06-17 17:33:04
【问题描述】:

我正在开展一个项目,以识别 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=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)

这是来自soup的回复:

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

它返回并清空文件。如果我在 body=** 参数中搜索其他文本,它确实会以大量内容响应。是我做错了什么还是 API 无法进行特定的文本搜索?

【问题讨论】:

    标签: stackexchange-api


    【解决方案1】:

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

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

    这给出了与this live site search 相同的结果。 (目前有 2 个问题)


    请注意,无论如何,这不会在目标文本中找到答案。 API 对此没有好处。

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

    【讨论】:

    • 感谢您的回复。我尝试了 SEDE,但效率非常低,并且一直超时。谷歌大查询有一个公开的 stackoverflow 数据集,该数据集非常高效,但数据到 2019 年 3 月为止还不错。感谢您的解决方法。它绝对适用于问题。
    猜你喜欢
    • 2010-09-16
    • 1970-01-01
    • 2023-01-21
    • 2011-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多