tool.js 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. /* eslint-disable strict */
  2. const Service = require('egg').Service;
  3. const svgCaptcha = require('svg-captcha');
  4. // const cheerio = require('cheerio');
  5. // const puppeteer = require('puppeteer');
  6. const request = require('superagent');
  7. const cheerio = require('cheerio');
  8. const fs = require('fs');
  9. class ToolsService extends Service {
  10. // 产生验证码
  11. async captcha() {
  12. const captcha = svgCaptcha.create({
  13. size: 4, // 大小
  14. fontSize: 50, // 字体大小
  15. width: 100, // 宽
  16. height: 40, // 高
  17. bacground: '#cc9966', // 背景色
  18. });
  19. return captcha;
  20. }
  21. // 发送短信验证码
  22. async sendmessage(ctx, app, randomstr) {
  23. const message = '【吉林省就业中心】您的验证码为:' + randomstr + ',请在30分钟内完成输入,欢迎使用吉林省智慧就业企业服务平台。';
  24. const data = '?Id=300&Name=wwqcgh&Psw=jljyzx-wwqcgh&Message=' + message + '&Phone=' + ctx.query.mobile + '&Timestamp=0';
  25. // const data = '?Id=300&Name=wwqcgh&Psw=jljyzx-wwqcgh&Message=' + message + '&Phone=' + phone + '&Timestamp=0';
  26. const path = ctx.app.config.messageDir + data;
  27. const result = await app.curl(path, {
  28. method: 'GET',
  29. dataType: 'text/xml',
  30. });
  31. return result;
  32. }
  33. // 输入路径返回文本
  34. async creeper() {
  35. // 目标链接 吉林省人事考试网第一页
  36. const targetUrl = 'http://www.jlzkb.com/cms/root/ksbmList.vm?dir=L-iAg-ivleaKpeWQjS_kuovkuJrljZXkvY3mi5vogZjogIPor5U&page=1&rows=8';
  37. // 用来暂时保存解析到的内容和图片地址数据
  38. const content = '';
  39. // const imgs = [];
  40. // 发起请求
  41. request.get(targetUrl).end((error, res) => {
  42. if (error) { // 请求出错,打印错误,返回
  43. console.log(error);
  44. return;
  45. }
  46. // cheerio需要先load html
  47. const $ = cheerio.load(res.text);
  48. // 循环列表,获取标题、a标签路径、日期,然后根据a标签路径再次进行爬出内容、保存即可
  49. $('#DivInfoList tr').each((index, element) => {
  50. // const title = $(element).find('td a').attr('title');
  51. // console.log(title);
  52. // const uri = $(element).find('td a').attr('href');
  53. // console.log(uri);
  54. // const time = $(element).find('td[width="12%"]').text();
  55. // console.log(time);
  56. });
  57. // 点击下一页
  58. console.log($('#DivPageControl').find('a').attr('href'));
  59. });
  60. }
  61. }
  62. module.exports = ToolsService;