diff --git a/lib/v2/gov/sichuan/deyang/govpulicinfo.js b/lib/v2/gov/sichuan/deyang/govpulicinfo.js index 761c08657..2c6eb1ef1 100644 --- a/lib/v2/gov/sichuan/deyang/govpulicinfo.js +++ b/lib/v2/gov/sichuan/deyang/govpulicinfo.js @@ -3,7 +3,6 @@ const cheerio = require('cheerio'); const { parseDate } = require('@/utils/parse-date'); const { art } = require('@/utils/render'); const path = require('path'); -const timezone = require('@/utils/timezone'); // 各地区url信息 const basicInfoDict = { @@ -16,10 +15,16 @@ const basicInfoDict = { const getInfoUrlList = async (countyName) => { const url = basicInfoDict[countyName].infoUrl; const infoUrlList = []; - const expectToday = parseDate(timezone(new Date(), +8)); + const expectToday = new Date(); for (let pageNum = 1; ; pageNum++) { - // eslint-disable-next-line no-await-in-loop - const response = await got(`${url}${pageNum}`); + let response; + try { + // eslint-disable-next-line no-await-in-loop + response = await got(`${url}${pageNum}`); + } catch (err) { + // eslint-disable-next-line no-await-in-loop + response = await got(`${url}${pageNum}`, { dnsLookupIpVersion: 'ipv6' }); + } const $ = cheerio.load(response.data); const infoList = $('#list_content > ul > li'); // 判断当前页是否有数据 @@ -27,7 +32,7 @@ const getInfoUrlList = async (countyName) => { for (let infoIdx = 0; infoIdx < infoList.length; infoIdx++) { const date = parseDate($('span', infoList[infoIdx]).html()); // 判断当前信息日期是否是今日 - if (date.getUTCFullYear() === expectToday.getUTCFullYear() && date.getUTCMonth() === expectToday.getUTCMonth() && date.getUTCDay() === expectToday.getUTCDay()) { + if (date.getUTCFullYear() === expectToday.getUTCFullYear() && date.getUTCMonth() === expectToday.getUTCMonth() && date.getUTCDate() === expectToday.getUTCDate() - 1) { infoUrlList.push(`${basicInfoDict[countyName].rootUrl}${$('a', infoList[infoIdx]).attr('href')}`); } else { return infoUrlList; @@ -42,7 +47,12 @@ const getInfoUrlList = async (countyName) => { // 获取信息正文内容 const getInfoContent = async (ctx, url, countyName) => await ctx.cache.tryGet(url, async () => { - const response = await got(url); + let response; + try { + response = await got(url); + } catch (err) { + response = await got(url, { dnsLookupIpVersion: 'ipv6' }); + } const $ = cheerio.load(response.data); const fileNodes = $('#symbol > div:nth-child(4) > div > span > a'); const fileList = [];