|
@@ -0,0 +1,123 @@
|
|
|
+/* eslint-disable strict */
|
|
|
+const Service = require('egg').Service;
|
|
|
+const svgCaptcha = require('svg-captcha');
|
|
|
+// const cheerio = require('cheerio');
|
|
|
+// const puppeteer = require('puppeteer');
|
|
|
+
|
|
|
+class ToolsService extends Service {
|
|
|
+
|
|
|
+ // 产生验证码
|
|
|
+ async captcha() {
|
|
|
+ const captcha = svgCaptcha.create({
|
|
|
+ size: 4, // 大小
|
|
|
+ fontSize: 50, // 字体大小
|
|
|
+ width: 100, // 宽
|
|
|
+ height: 40, // 高
|
|
|
+ bacground: '#cc9966', // 背景色
|
|
|
+ });
|
|
|
+ return captcha;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 发送短信验证码
|
|
|
+ async sendmessage(ctx, app, randomstr) {
|
|
|
+ const message = '【吉林省就业中心】您的验证码为:' + randomstr + ',请在30分钟内完成输入,欢迎使用吉林省智慧就业企业服务平台。';
|
|
|
+ const data = '?Id=300&Name=wwqcgh&Psw=jljyzx-wwqcgh&Message=' + message + '&Phone=' + ctx.query.mobile + '&Timestamp=0';
|
|
|
+ // const data = '?Id=300&Name=wwqcgh&Psw=jljyzx-wwqcgh&Message=' + message + '&Phone=' + phone + '&Timestamp=0';
|
|
|
+ const path = ctx.app.config.messageDir + data;
|
|
|
+ const result = await app.curl(path, {
|
|
|
+ method: 'GET',
|
|
|
+ dataType: 'text/xml',
|
|
|
+ });
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ async spider(ctx, app) {
|
|
|
+ const url = 'http://job.ccut.edu.cn/module/getindustry?start_page=1&k=&type_id=300025&count=15&start=1&_=1564563909055';
|
|
|
+ const result = await app.curl(url, {
|
|
|
+ method: 'GET',
|
|
|
+ dataType: 'json',
|
|
|
+ });
|
|
|
+ // const dataarray = result.data.data;
|
|
|
+ // for(let i = 0;i < dataarray.length; i++){
|
|
|
+ // const dataInfo = dataarray[i];
|
|
|
+ // const info_id = dataInfo.info_id;
|
|
|
+ // const path = 'http://job.ccut.edu.cn/detail/industry?menu_id=&type_id=300025&id=' + info_id;
|
|
|
+ // const res = await app.curl(path, {
|
|
|
+ // method: 'GET',
|
|
|
+ // dataType: 'json',
|
|
|
+ // });
|
|
|
+ // console.log(result.data);
|
|
|
+ // const data = JSON.parse(response.data);
|
|
|
+ // console.log(data);
|
|
|
+ // // console.log(info_id);
|
|
|
+ // // const browser = await puppeteer.launch({
|
|
|
+ // // headless: true, // 使用无头浏览器抓取
|
|
|
+ // // });
|
|
|
+ // // const page = await browser.newPage();
|
|
|
+ // // // 设置客户端
|
|
|
+ // // await page.setUserAgent('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36');
|
|
|
+ // // await page.goto('http://job.ccut.edu.cn/detail/industry?menu_id=&type_id=300025&id='+info_id, {
|
|
|
+ // // waitUntil: [ 'domcontentloaded' ],
|
|
|
+ // // });
|
|
|
+ // // await page.screenshot({ path: 'static.png' });
|
|
|
+ // // const data = await page.evaluate(() => {
|
|
|
+ // // var storage = {};
|
|
|
+ // // // 单页爬取
|
|
|
+ // // var $div = $('#data_details');
|
|
|
+ // // storage = {
|
|
|
+ // // title: $div.find('.dh-tit').html(),
|
|
|
+ // // time: $div.find('.dh-info').html(),
|
|
|
+ // // content: $div.find('.details-content').html(),
|
|
|
+ // // };
|
|
|
+ // // return storage;
|
|
|
+ // // });
|
|
|
+ // //console.log(resultInfo.data.data);
|
|
|
+ // }
|
|
|
+ return result.data.data;
|
|
|
+ // console.log(result.data.toString('utf8',0,result.data.length));
|
|
|
+
|
|
|
+ // const data = JSON.parse(result.data);
|
|
|
+ // eslint-disable-next-line no-undef
|
|
|
+ // const $ = cheerio.load(result);
|
|
|
+ // const resultStr = [];
|
|
|
+ // $('#DivInfoList').find('table').find('tr').each(function(index,ele) {
|
|
|
+ // console.log(111);
|
|
|
+ // var obj = {};
|
|
|
+ // obj.jobName = $(this).find('td').find('a').text();
|
|
|
+ // //obj.salary = $(this).find('.red').text();
|
|
|
+ // resultStr.push(obj);
|
|
|
+ // });
|
|
|
+ // const browser = await puppeteer.launch({
|
|
|
+ // headless: true, // 使用无头浏览器抓取
|
|
|
+ // });
|
|
|
+ // const page = await browser.newPage();
|
|
|
+ // // 设置客户端
|
|
|
+ // await page.setUserAgent('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36');
|
|
|
+ // await page.goto('http://job.ccut.edu.cn/module/getindustry?start_page=1&k=&type_id=300025&count=15&start=1&_=1564563909055', {
|
|
|
+ // waitUntil: [ 'domcontentloaded' ],
|
|
|
+ // });
|
|
|
+ // await page.screenshot({ path: 'static.png' });
|
|
|
+ // const data = await page.evaluate(() => {
|
|
|
+ // var storage = [];
|
|
|
+ // // 单页爬取
|
|
|
+ // var $table = $('#DivInfoList table tbody');
|
|
|
+ // if ($table.length) {
|
|
|
+ // $table.find('tr').each(function (index, item) {
|
|
|
+ // if (index !== 0) {
|
|
|
+ // var $td = $(item).find('td');
|
|
|
+ // storage.push({
|
|
|
+ // title: $td.eq(1).find('a').html(),
|
|
|
+ // time: $td.eq(2).html(),
|
|
|
+ // });
|
|
|
+ // }
|
|
|
+ // });
|
|
|
+ // }
|
|
|
+ // return storage;
|
|
|
+ // });
|
|
|
+ // console.log(data);
|
|
|
+ // await browser.close();
|
|
|
+ // return JSON.stringify(data);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+module.exports = ToolsService;
|