book.ts 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. import BaseService from '../base';
  2. /**
  3. * 小说爬虫Service
  4. */
  5. export default class ReptileBookService extends BaseService {
  6. /**
  7. * 获取纵横书籍最新章节
  8. */
  9. async getZonghengBookLastchapter(param: any) {
  10. // eslint-disable-next-line @typescript-eslint/no-var-requires
  11. const puppeteer = require('puppeteer-core');
  12. // eslint-disable-next-line @typescript-eslint/no-var-requires
  13. const cheerio = require('cheerio');
  14. const browser = await puppeteer.launch(this.config.puppeteer.launchOptions);
  15. const page = await browser.newPage();
  16. await page.goto(`http://book.zongheng.com/book/${param.id}.html`, { waitUntil: 'networkidle0' });
  17. const content = await page.content();
  18. const $ = cheerio.load(content);
  19. const chapter = $('.book-html-box .book-top .book-main .book-new-chapter .tit').text();
  20. const bookname = $('.book-html-box .book-top .book-main .book-info .book-name').text().trim();
  21. await this.service.admin.comm.email.sendEmail({
  22. from: 'noreply@mail.si-yee.com',
  23. text: `${bookname} 最新章节 : ${chapter}`,
  24. to: param.emails,
  25. subject: '小说最新章节',
  26. html: `<h2>${bookname} 最新章节 : ${chapter}</h2>`,
  27. });
  28. await browser.close();
  29. }
  30. }