Py-StackExchange API returns 简单查询没什么

Py-StackExchange API returns nothing for a simple query

我正在使用 Py-StackExchange 从 CrossValidated 获取问题列表。我需要按包含单词“keras”的页面标题进行过滤。

这是我的代码。它的执行需要很长时间,最后 returns 什么都没有。

cv = stackexchange.Site(stackexchange.CrossValidated, app_key=user_api_key, impose_throttling=True)
cv.be_inclusive()

for q in cv.questions(pagesize=100):
    if "keras" in q.title:
       print('--- %s ---' % q.title)
       print(q.creation_date)

我用 search 手动检查了相同的查询并很快获得了问题列表。

如何使用 Py-StackExchange 执行相同的操作?

您有两个选择:

  1. 使用this SEDE query. This will give you all questions which contain keras in their title on Cross Validated. However, note that SEDE is updated weekly

  2. 使用 Stack Exchange API 的 /search/advanced 方法。此方法有一个 title 参数,它接受:

    text which must appear in returned questions' titles.

    我之前没用过Py-StackExchange,不知道效果如何。因此,在此示例中,我将使用 StackAPI library (docs):

    from stackapi import StackAPI
    
    q_filter = '!4(L6lo9D9ItRz4WBh'
    word_to_search = 'keras'
    SITE = StackAPI('stats')
    keras_qs = SITE.fetch('search/advanced',
                          filter = q_filter,
                          title = word_to_search)
    print(keras_qs['items'])
    print(f"Found {len(keras_qs['items'])} questions.")
    

    我这里用的filter!-MOiN_e9RRw)Pq_PfQ*ovQp6AZCUT08iP;您可以更改它或根本不提供它。没有理由提供 API 密钥(库使用一个),除非有读物可以这样做。