我正在使用请求模块和cheerio制作我的网站抓取工具。
这是我的函数getData()->它通过请求获取html并与cheerio进行解析。 并且console.log(body)显示了从我的网站获取的html请求模块。
async function getData(category) {
try {
let post = [];
await rp("http://2dd.kr/category/" + category)
.then(async function(body){
try{
console.log(body);
let $ = await cheerio.load(body);
console.log($);
$('.post-title a').each((async function (i,elem) {
console.log(`Starting.. ${$('.post-title a').length}`);
const title = $('.post-title a').eq(i).text().trim();
const link = $('.post-title a').eq(i).attr("href");
const year = $('.post-date-year').eq(i).text().trim();
let month = $('.post-date-month').eq(i).text().trim();
const day = $('.post-date-day').eq(i).text().trim();
month = month.replace("월", "");
const DecodedLink = decodeURIComponent(link);
const date = year + month + day;
post[i] = {
title: title,
link: DecodedLink,
year: year,
month: month,
day: day,
date: date,
};
console.log(post[i]);
await db.ref(category + "/" + i).set(post[i]);
}));
} catch(e){
console.log("error");
console.error(e);
}
})
.catch((err)=>{
console.error(err);
});
} catch (e) {
console.log('Error!!!');
console.error(e);
}
当我在本地计算机上运行index.js时,它会很好地获取html,但是当我在heroku中运行index.js时,它会再获取一个html,因此我无法用cheerio解析该html。
当我在本地计算机上运行index.js时,它会获得确切的html,因此我可以用cheerio进行解析,但是
当我在heroku中运行index.js时,它会得到另一个类似这样的html:
<html><body><script type="text/javascript" src
="/cupid.js" ></script><script>function toNumbers(d){var e=[];d.replace(/(..)/g,function(d){e.push(parseInt(d,16))});return e}function toHex(){for(var d=[],d=1==arguments.length&&argument
s[0].constructor==Array?arguments[0]:arguments,e="",f=0;f<d.length;f++)e+=(16>d[f]?"0":"")+d[f].toString(16);return e.toLowerCase()}var a=toNumbers("e570a68805e3d6a2d7db2a505cb5ad9b"),b=t
oNumbers("72fee3f5064005167fb67c09031db8c2"),c=toNumbers("c4ae16814de2ccec28b9cd147096e8a6");var now=new Date(),time=now.getTime();time+=3600*1000*24;now.setTime(time);document.cookie="CU
PID="+toHex(slowAES.decrypt(c,2,a,b))+"; expires="+now.toUTCString()+"; path=/";location.href="http://2dd.kr/category/daily?ckattempt=1";</script></body></html>
我不知道为什么相同的index.js在我的网站中获得不同的html的原因。 有什么我可以做的..?
谢谢大家。