修复分页

This commit is contained in:
Harold
2026-04-19 18:32:57 +08:00
parent 042132b007
commit c27a7ffb48
6 changed files with 14 additions and 19 deletions
+1 -3
View File
@@ -121,13 +121,11 @@ class Spider(BaseSpider):
def _page_result(self, items, pg):
page = int(pg)
pagecount = page + 1 if items else page
return {
"list": items,
"page": page,
"pagecount": pagecount,
"limit": len(items),
"total": pagecount * max(len(items), 1),
"total": page * 30 + len(items),
}
def _clean_text(self, text):
+1 -4
View File
@@ -140,14 +140,11 @@ class Spider(BaseSpider):
def _page_result(self, items, pg):
page = int(pg)
pagecount = page + 1 if items else page
self.log(items[0])
return {
"list": items,
"page": page,
"pagecount": pagecount,
"limit": len(items),
"total": pagecount * max(len(items), 1),
"total": page * 30 + len(items),
}
def _build_category_path(self, tid, pg):
+1 -2
View File
@@ -221,9 +221,8 @@ class Spider(BaseSpider):
return {
"list": items,
"page": page,
"pagecount": page + 1 if items else page,
"limit": 24,
"total": page * 24 + len(items),
"total": page * 30 + len(items),
}
def searchContent(self, key, quick, pg="1"):
+1 -3
View File
@@ -169,13 +169,11 @@ class Spider(BaseSpider):
url = self._build_category_url(str(tid), str(pg), extend if isinstance(extend, dict) else {})
items = self._extract_cards(self._request_html(url))
page = int(pg)
pagecount = page + 1 if len(items) >= 20 else page
return {
"list": items,
"page": page,
"pagecount": pagecount,
"limit": 20,
"total": page * 20 + len(items),
"total": page * 30 + len(items),
}
def _pick_info(self, html, label):
+9 -4
View File
@@ -27,6 +27,7 @@ class Spider(BaseSpider):
self.version = "1.0.1"
self.version_code = 1000
self.inited = False
self.next = ["", ""]
def init(self, extend=""):
if self.inited:
@@ -150,20 +151,19 @@ class Spider(BaseSpider):
def _page_result(self, items, pg, has_next):
page = int(pg)
pagecount = page + 1 if items and has_next else page
return {
"list": items,
"page": page,
"pagecount": pagecount,
"limit": len(items),
"total": pagecount * max(len(items), 1),
"total": page * 30 + len(items),
}
def categoryContent(self, tid, pg, filter, extend):
page = int(pg)
payload = self._build_payload(
{
"nextCount": 18,
"nextVal": "",
"nextVal": self.next[page] if page < len(self.next) else "",
"queryValueJson": json.dumps(
[{"filerName": "channelId", "filerValue": str(tid)}],
ensure_ascii=False,
@@ -174,6 +174,11 @@ class Spider(BaseSpider):
)
response = self._post_api("/v1/api/search/queryNow", payload)
data = response.get("data", {})
nextVal = data.get("nextVal", '')
if len(self.next) == page + 1:
self.next.append(nextVal)
else:
self.next[page + 1] = nextVal
items = [self._map_video_item(item) for item in data.get("items", []) if isinstance(item, dict)]
return self._page_result(items, pg, data.get("hasNext") == 1)
+1 -3
View File
@@ -181,13 +181,11 @@ class Spider(BaseSpider):
def _page_result(self, items, pg):
page = int(pg)
pagecount = page + 1 if items else page
return {
"list": items,
"page": page,
"pagecount": pagecount,
"limit": len(items),
"total": pagecount * max(len(items), 1),
"total": page * 30 + len(items),
}
def categoryContent(self, tid, pg, filter, extend):