簡體   English   中英

無法在node.js上使用噩夢API返回document.querySelector

[英]cannot return document.querySelector with nightmare API on node.js

我在中國電子商務網站taobao(www.taobao.com/)上使用nightmare.js進行Web腳本編寫。 目的是獲取產品信息。 該代碼與yahoo示例代碼非常相似,但結果始終為null。 我嘗試將console.log調試,並意識到錯誤可能出在querySelector上。 如果有人有時間看看下面的代碼。 真的很感激。

var Nightmare = require('nightmare');
var nightmare = Nightmare({ show: true });

nightmare
  .goto('https://www.taobao.com')
  .type('form[action*="/search"] [name=q]', 'hellow kitty')
  .click('form[action*="/search"] [type=submit]')
  .wait(2000)
  .evaluate(function () {
    return document.querySelector('.row.row-2.title a')
  })
  .end()
  .then(function (result) {
    console.log(result)
  })
  .catch(function (error) {
    console.error('Search failed:', error);
  });

首先,最重要的是:仔細檢查選擇器並確保它們存在。

撇開這一點,問題在於return document.querySelector('.row.row-2.title a') DOM列表(例如從document.querySelector返回的列表)不能很好地序列化。 嘗試在返回之前提取所需的結果-說您想從錨點獲取HREF,您可以(從臀部)做類似的事情:

return Array.from(document.querySelector('.row.row-2.title a')).map(a=> a.href);

暫無
暫無

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

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