suchen

Heim  >  Fragen und Antworten  >  Hauptteil

javascript – Problem mit NodeJS beim Crawlen von Webseiten

Ich habe vor, NodeJS zu verwenden, um alle Nachrichten auf der folgenden Website zu erfassen. Gemäß der allgemeinen Idee erhalten Sie zuerst die URL jeder Nachrichtenseite und dann die URL jeder Nachricht.
Rufen Sie den Inhalt jeder URL mithilfe von Anfrage und ab das ist es

Aber alle Paging-Informationen der folgenden Website sowie die URL jeder angeklickten Nachricht haben sich nicht geändert. Es scheint, dass sie alle über js im Hintergrund implementiert werden.

Ich kann keine Anfragen sehen, die das Newwork verwenden Tab von F12 in Chrom, kann mir irgendein Meister zeigen, wie ich es ergreife?

http://www.xxxxxxxxx.com/glob...

阿神阿神2747 Tage vor649

Antworte allen(2)Ich werde antworten

  • 阿神

    阿神2017-05-16 13:45:09

    1.从上一篇与下一篇的地方可以看到,click绑定的函数:boardView(1);

    2.通过boadrview在页面中找到对应的函数:

    function boardView(idx){
      var listNum = 10; // 목록 수 지정
      
      var resultLenplistNum = Math.floor(idx/listNum); // 결과 나누기 목록수
      var resultLenRestlistNum = Math.floor(idx%listNum); // 결과 나머지 목록수
      if (resultLenRestlistNum == 0){
        pageNum = resultLenplistNum;
      } else {
        pageNum = resultLenplistNum + 1;
      }
      
      cmsView.style.display = 'block';
      cmsList.style.display = 'none';
      resultViewStr = '<p class="news_view"><p class="news_hd">';
      resultViewStr = resultViewStr + '<strong>'+list.artCatTitles[resultSearch[idx]] +'</strong>';
      resultViewStr = resultViewStr + '<p>'+list.artTitles[resultSearch[idx]]+'</p>';
      resultViewStr = resultViewStr + '<span>'+list.artTimes[resultSearch[idx]]+'</span></p>';
      resultViewStr = resultViewStr + '<p class="news_bd">'+list.artTexts[resultSearch[idx]];
      resultViewStr = resultViewStr + list.artFiles[resultSearch[idx]]+'</p>';
      resultViewStr = resultViewStr + '<p class="news_link"><ul>';
      resultViewStr = resultViewStr + '<li><strong><span></span>';
    

    .........

    3.看到数据来自于list这个变量,再寻找list

    4.在1739行看到:

    var artId = "";
    var catId = "se14_24";
    var tplId = "";
    list = new jsList();
    list.cmsInit(catId, artId, tplId, new data()); // list 객체 생성
    

    5.调用了一个构造函数:jsList()找到相应的代码在这里:http://www.samsungsem.com/js/...

    6 看回第2步的代码:list.artTitles-->这些数据是通过jsList的cmsInit方法设置的,而cmsInit中:

    function cmsInit(catId, artId, tplId, data) {
    
        this.artIds = data.artIds;
        this.artCatTitles = data.artCatTitles;
        this.artTitles = data.artTitles;
        this.artUrls = data.artUrls;
        this.artTimes = data.artTimes;
        this.artImgs = data.artImgs;
        this.artTexts = data.artTexts;
        this.artTexts2 = data.artTexts2;
        this.artKeywords = data.artKeywords;
        this.artFiles = data.artFiles;
    

    ...
    的数据来自第四个参数data

    7.再看第4步的传的data是new data()
    于是,我们找到data这个函数定义的地方。
    往上找,找到了:<script src="/global/news/data.js.jsp"></script>

    8.打开后看一下:http://www.samsungsem.com/glo...
    好奇怪的感觉,怎么样式那么奇怪?

    再右键查看源代码:
    view-source:http://www.samsungsem.com/glo...
    可以看到data函数是在这里定义的,而你看到的数据也在这个页面里。

    Antwort
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-16 13:45:09

    多谢回答,我先去看看去.....

    基本看明白了,还有一点不是很懂的地方再慢慢去看,多谢了..

    Antwort
    0
  • StornierenAntwort