@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
|
@@ -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) {
|