get infoq search result

This commit is contained in:
hillerliao
2022-10-22 09:50:16 +08:00
parent f01b87b14f
commit a38d458e7d
3 changed files with 44 additions and 0 deletions

View File

@@ -0,0 +1,35 @@
import requests
import json
from urllib.parse import unquote, quote
from rsshub.utils import DEFAULT_HEADERS
from rsshub.utils import fetch
domain = 'https://s.geekbang.org'
def parse(post):
item = {}
item['title'] = post['title']
item['description'] = post['simple_content']
item['link'] = post['content_url']
item['author'] = post['author']
item['pubDate'] = post['release_time']
return item
def ctx(category=''):
# category = unquote(category, encoding='utf-8')
category1 = category.encode("utf-8").decode("latin-1")
referer = f'{domain}/search/c=0/k={category1}/t=0'
DEFAULT_HEADERS.update({'Referer': referer})
url = f'{domain}/api/gksearch/search'
payload = {"q":category,"t":0,"s":20,"p":1}
posts = requests.post(url, json=payload, headers=DEFAULT_HEADERS)
posts = json.loads(posts.text)['data']['list']
return {
'title': f'{category} - 搜索 - InfoQ',
'link': referer,
'description': f'{category} - 极客邦搜索 - InfoQ',
'author': 'hillerliao',
'items': list(map(parse, posts))
}