使用heroku从网站获取不同的html

时间:2019-03-19 13:44:07

标签: heroku cheerio

我正在使用请求模块和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的原因。 有什么我可以做的..?

谢谢大家。

0 个答案:

没有答案