簡體   English   中英

通過網絡抓取獲取雅虎評論

[英]Get yahoo comments with web scraping

我正在嘗試獲取有關Yahoo的新聞評論,該站點上有一個鏈接“查看反應”,其ID為:“ caascommtbar-wide”,並嘗試使用CasperJS,Selenium,ScrapySharp獲取該元素,以單擊該鏈接並顯示注釋,但是在那些工具中您找不到元素,我什至嘗試使用XPath

CasperJS:

       casper.then (function () {
            if (this.exists ('a.caascommtbar-anchor')) {
                  this.echo ("It exists");
            } else
                 this.echo ("It Does not Exist");
       });

       casper.then (function () {
       // Click on 1st result link
            this.click ('a.caascommtbar-anchor');
      });

硒:

driver.FindElement (By.Id ("caascommtbar-anchor")). Click ();

有誰知道為什么您不能訪問注釋所在的HTML代碼的這一部分?

應該注意的是,當嘗試訪問新聞論壇中包含的Facebook評論時,我也會遇到同樣的事情。

正如Isaac所說,頁面的一部分是異步加載的,因此您應該在代碼中實現waitFor步驟。 這是執行此操作的代碼。

var url = "https://es-us.vida-estilo.yahoo.com/instagram-cierra-la-cuenta-de-una-modelo-por-ser-gorda-103756072.html";
var casper = require('casper').create({
  viewportSize: {width: 1280, height: 800},
});

casper.start(url, function() {
  this.echo('Opened page');
});

casper.waitForSelector('a.comments-title', function() {
  this.click('.comments-title');
});

casper.waitForSelector('ul.comments-list > li', function() {
  this.echo(this.getHTML('ul.comments-list'));
});

casper.run();

希望能有所幫助

問題是為什么頁面尚未加載,而我不得不等待,我是casperjs的新手。

現在,當我嘗試刪除所有評論及其答案時遇到了問題,但是找不到幫助我的算法。 嘗試按所有答案按鈕,但僅獲得第一個評論的第一個答案。

casper.waitForSelector('button.showMore', function () {
     this.click('.showMore');
}, function onWaitTimeout() {        
});

var buttons;
casper.waitForSelector('ul.comments-list', function getLinks() {
buttons = this.evaluate(function ()
{         
   var buttons = document.getElementsByClassName('replies-button');
   buttons = Array.prototype.map.call(buttons, function (button) {
   button.click();      
   casper.waitForSelector('ul.comments-list', function () {
         casper.wait(3000, function () {
        });
   });
   return button.getAttribute('class');
   });
        return buttons;
   });
}, function onWaitTimeout() {

});

function wait5seconds() {
   casper.wait(3000, function () {      
   });
}
casper.waitForSelector('ul.comments-list > li', function () {  
   var x = this.getHTML('ul.comments-list');    
   this.echo(x);
}, function onWaitTimeout() {        
});

casper.run();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM