我正在使用Py StackExchange从CrossValidated获取问题列表。我需要通过包括单词";keras";。
这是我的密码。它的执行需要很长时间,最终一无所获。
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)
我通过搜索手动检查了同一个查询,并很快获得了问题列表。
如何使用Py StackExchange进行同样的操作?
您有两个选项:
-
使用此SEDE查询。这将为您提供交叉验证标题中包含
keras
的所有问题。但是,请注意,SEDE每周更新一次。 -
使用Stack Exchange API的
/search/advanced
方法。此方法有一个接受的title
参数必须出现在返回问题标题中的文本。
我以前没有使用过Py StackExchange,所以我不知道它是如何工作的。因此,在这个例子中,我将使用StackAPI库(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.")
我在这里使用的过滤器是
!-MOiN_e9RRw)Pq_PfQ*ovQp6AZCUT08iP
;你可以改变或者根本不提供。没有理由提供API密钥(lib使用一个(,除非有readon这样做