44def request(query, params):
45 page_num = params["pageno"]
46
47 category_config = {
48 'general': {
49 'endpoint': 'https://www.baidu.com/s',
50 'params': {
51 "wd": query,
52 "rn": results_per_page,
53 "pn": (page_num - 1) * results_per_page,
54 "tn": "json",
55 },
56 },
57 'images': {
58 'endpoint': 'https://image.baidu.com/search/acjson',
59 'params': {
60 "word": query,
61 "rn": results_per_page,
62 "pn": (page_num - 1) * results_per_page,
63 "tn": "resultjson_com",
64 },
65 },
66 'it': {
67 'endpoint': 'https://kaifa.baidu.com/rest/v1/search',
68 'params': {
69 "wd": query,
70 "pageSize": results_per_page,
71 "pageNum": page_num,
72 "paramList": f"page_num={page_num},page_size={results_per_page}",
73 "position": 0,
74 },
75 },
76 }
77
78 query_params = category_config[baidu_category]['params']
79 query_url = category_config[baidu_category]['endpoint']
80
81 if params.get("time_range") in time_range_dict:
82 now = int(time.time())
83 past = now - time_range_dict[params["time_range"]]
84
85 if baidu_category == 'general':
86 query_params["gpc"] = f"stf={past},{now}|stftype=1"
87
88 if baidu_category == 'it':
89 query_params["paramList"] += f",timestamp_range={past}-{now}"
90
91 params["url"] = f"{query_url}?{urlencode(query_params)}"
92 return params
93
94