对于那些熟悉图像板的人来说,OP 帖子可能包含也可能不包含“主题”和“评论”
我写这篇文章是为了在给定板的所有页面上搜索线程主题和 OP 帖子。
如果我的搜索词存在于其中一个上,但另一个键不存在,它将不会被附加到我的 res 列表中。
那么如何搜索 json 键,其中 1 个键或另一个键可能不存在?
import urllib, json, HTMLParser
def s4Chan(board, search):
logo = '3::54chan'
res = []
p = HTMLParser.HTMLParser()
catalog = json.load(urllib.urlopen('https://api.4chan.org/%s/catalog.json' % board))
for i in catalog:
for j in i['threads']:
try:
if search.lower() in j['sub'].lower() or search.lower() in j['com'].lower():
subject = j['sub']
post = p.unescape(str(j['com'])).replace('<br>', ' ')
if len(post) > 300:
post = post[0:300]
post = post + '...'
text = str('%s /%s/ %s | %s | %s (R:%s, I:%s)' % (logo, board, subject, post, 'https://4chan.org/%s/res/%s' % (board, j['no']), j['replies'], j['images']))
res.append(text)
except(KeyError):
continue
return res