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 执行相同的操作?
您有两个选择:
使用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。
使用 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 密钥(库使用一个),除非有读物可以这样做。
我正在使用 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 执行相同的操作?
您有两个选择:
使用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。使用 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 密钥(库使用一个),除非有读物可以这样做。