|
@@ -3,7 +3,9 @@ const Service = require('egg').Service;
|
|
|
const svgCaptcha = require('svg-captcha');
|
|
|
// const cheerio = require('cheerio');
|
|
|
// const puppeteer = require('puppeteer');
|
|
|
-
|
|
|
+const request = require('superagent');
|
|
|
+const cheerio = require('cheerio');
|
|
|
+const fs = require('fs');
|
|
|
class ToolsService extends Service {
|
|
|
|
|
|
// 产生验证码
|
|
@@ -30,93 +32,33 @@ class ToolsService extends Service {
|
|
|
});
|
|
|
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',
|
|
|
+ // 输入路径返回文本
|
|
|
+ async creeper() {
|
|
|
+ // 目标链接 吉林省人事考试网第一页
|
|
|
+ const targetUrl = 'http://www.jlzkb.com/cms/root/ksbmList.vm?dir=L-iAg-ivleaKpeWQjS_kuovkuJrljZXkvY3mi5vogZjogIPor5U&page=1&rows=8';
|
|
|
+ // 用来暂时保存解析到的内容和图片地址数据
|
|
|
+ const content = '';
|
|
|
+ // const imgs = [];
|
|
|
+ // 发起请求
|
|
|
+ request.get(targetUrl).end((error, res) => {
|
|
|
+ if (error) { // 请求出错,打印错误,返回
|
|
|
+ console.log(error);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ // cheerio需要先load html
|
|
|
+ const $ = cheerio.load(res.text);
|
|
|
+ // 循环列表,获取标题、a标签路径、日期,然后根据a标签路径再次进行爬出内容、保存即可
|
|
|
+ $('#DivInfoList tr').each((index, element) => {
|
|
|
+ // const title = $(element).find('td a').attr('title');
|
|
|
+ // console.log(title);
|
|
|
+ // const uri = $(element).find('td a').attr('href');
|
|
|
+ // console.log(uri);
|
|
|
+ // const time = $(element).find('td[width="12%"]').text();
|
|
|
+ // console.log(time);
|
|
|
+ });
|
|
|
+ // 点击下一页
|
|
|
+ console.log($('#DivPageControl').find('a').attr('href'));
|
|
|
});
|
|
|
- // 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);
|
|
|
}
|
|
|
}
|
|
|
|