cari

Rumah  >  Soal Jawab  >  teks badan

javascript - Mengapa saya tidak boleh merangkak halaman jika saya menggunakan phantomjs untuk merangkak jika terdapat banyak data pada halaman?

Saya ingin merangkak halaman carian Taobao Ia adalah halaman yang dijana oleh pemaparan js, jadi saya memilih untuk merangkak dengan phantomjs. Tetapi masalah berlaku semasa proses pengambilan. Apabila terdapat lebih daripada dua hasil carian, tiada data boleh diperolehi. Tetapi tangkapan skrin menunjukkan bahawa data dimuatkan secara normal. Saya tidak tahu sama ada Taobao yang mengenakan sekatan atau ada masalah dengan kod saya. Tolong bantu saya menyelesaikannya.

var url = "https://ai.m.taobao.com/search.html?q=%E5%90%8D%E4%BA%BA%E7%91%9E%E8%A3%B32017%E5%A4%8F%E8%A3%85%E6%96%B0%E6%AC%BE%E5%A5%B3%E8%A3%85%E8%A3%99%E5%AD%90%E5%8F%8A%E8%86%9D%E9%95%BF%E6%AC%BE%E4%BF%AE%E8%BA%AB%E5%81%87%E4%B8%A4%E4%BB%B6%E5%8D%B0%E8%8A%B1%E9%9B%AA%E7%BA%BA%E8%BF%9E%E8%A1%A3%E8%A3%99&spm=a311n.7676424.1000.1&prepvid=201_10.184.72.34_159920160034_1496243285841&pid=mm_33231688_7050284_23466709&env&unid&hidebar&isout&clk1&smart&rb";
var page =require('webpage').create();
var fs = require('fs');
page.settings = {
  javascriptEnabled: true,
  loadImages: false,
  webSecurityEnabled: false,
  userAgent: 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.137 Safari/537.36 LBBROWSER'
};
page.open(url,function (status) {
    if (status !== 'success') {
        console.log('Unable to access thewebsite');
    } else {
             window.setTimeout(function () {
                page.render('example1.png');
                var val = page.evaluate(function(){
                    var data = document.querySelectorAll('p.item-thumbnail a.item-intro');
                    if ( data instanceof Array ) {  
                       return 1;
                        console.log(1)
                        for (var i = 0, len = data.length; i < len; i++) {  
                           console.log(data[i].innerHTML);  
                        }  
                    } else if ( data instanceof Object ) {  
                       var description = ""; 
                       for (var i in data) {  
                          description += i + " = " + data[i] + "\n";  
                      } 
                      return description;
                           // console.log(nextSibling(data).innerHTML);  
                    }  else {
                      return data;
                    } 
                });
                console.log('The register address:' + val);
                phantom.exit();
          }, 1000); 
            
         };
});
習慣沉默習慣沉默2742 hari yang lalu924

membalas semua(1)saya akan balas

  • 怪我咯

    怪我咯2017-07-05 10:52:52

    loadImages: false

    ?Tanda soal hitam

    balas
    0
  • Batalbalas