@cloud411716/fancy-webnovel 0.2.23 → 0.2.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloud411716/fancy-webnovel",
3
- "version": "0.2.23",
3
+ "version": "0.2.25",
4
4
  "type": "module",
5
5
  "main": "index.js",
6
6
  "exports": {
@@ -280,19 +280,22 @@ async function scrapeRank(channelId, rankTypeId, periodId) {
280
280
  books = rawBooks.filter(isUsableBook);
281
281
 
282
282
  // 直接从 DOM 提取 /shuku/{id}/ 链接补到每本书上(不依赖 XHR 匹配)
283
- const urlMap = {};
284
283
  await page.evaluate(() => {
284
+ if (window.__qimaoUrlMap) return;
285
+ var urlMap = {};
285
286
  document.querySelectorAll('a[href*="/shuku/"]').forEach(a => {
286
287
  var m = a.href.match(/\/shuku\/(\d+)\//);
287
288
  if (!m) return;
288
289
  var id = m[1];
289
- // 取离它最近的文字作为书名
290
290
  var title = (a.innerText || '').trim();
291
291
  if (title && title.length < 50 && title.length > 0) {
292
292
  urlMap[title] = 'https://www.qimao.com/shuku/' + id + '/';
293
293
  }
294
294
  });
295
+ window.__qimaoUrlMap = JSON.stringify(urlMap);
295
296
  });
297
+ const rawUrlMap = await page.evaluate(() => window.__qimaoUrlMap || '{}');
298
+ const urlMap = JSON.parse(rawUrlMap);
296
299
  const norm = s => (s || '').replace(/\s+/g, '');
297
300
  for (const b of books) {
298
301
  if (!b.url) {