UNPKG

rsshub

Version:
88 lines (78 loc) 2.82 kB
import { Route } from '@/types'; import puppeteer from '@/utils/puppeteer'; import { load } from 'cheerio'; export const route: Route = { path: '/vinyl/:cat?', categories: ['shopping'], example: '/hkushop/vinyl', parameters: { cat: '分类,见下表,默认不分类', }, features: { requireConfig: false, requirePuppeteer: true, antiCrawler: false, supportBT: false, supportPodcast: false, supportScihub: false, supportRadar: true, }, radar: [ { source: ['hkushop.com/vinyl-or-picture-lp.html', 'hkushop.com/'], target: '/vinyl', }, ], name: 'HKU Shop 黑胶专区', maintainers: ['gideonsenku'], handler, description: `常见分类: | 華語音樂 | 經典復刻 | 古典跨界 | 爵士音樂 | 國際音樂 | 電影原聲帶 | 黑膠日本音樂 | | ---- | ---- | ---- | ---- | ---- | ---- | ---- | | 37 | 38 | 40 | 41 | 39 | 170 | 224 |`, url: 'hkushop.com/vinyl-or-picture-lp.html', }; async function handler(ctx) { const baseUrl = 'https://hkushop.com'; const cat = ctx.req.param('cat') ?? ''; const url = cat ? `${baseUrl}/vinyl-or-picture-lp.html?cat=${cat}` : `${baseUrl}/vinyl-or-picture-lp.html`; const browser = await puppeteer(); const page = await browser.newPage(); await page.setRequestInterception(true); page.on('request', (request) => { request.resourceType() === 'document' || request.resourceType() === 'script' ? request.continue() : request.abort(); }); await page.goto(url, { waitUntil: 'domcontentloaded', }); const response = await page.content(); await page.close(); await browser.close(); const $ = load(response); const list = $('.products.list.items.product-items .product-item') .toArray() .map((item) => { const $item = $(item); const $link = $item.find('.product-item-link'); const $price = $item.find('.price'); const $image = $item.find('.product-image-photo'); const $artist = $item.find('.artist a').text().trim(); return { title: $link.text().trim(), link: $link.attr('href'), description: ` <img src="${$image.attr('src')}" /> <p>作者: ${$artist}</p> <p>价格: ${$price.text().trim()}</p> `, guid: $link.attr('href'), }; }); const title = cat ? `黑胶彩胶系列 - ${$('.page-title').text().trim()}` : '黑胶彩胶系列 - HKU Shop 环球唱片网店'; return { title, link: url, description: 'HKU Shop 黑胶唱片最新商品信息', item: list, }; }