2017-01-30 10 views
1

これは私が達成しようとしているものです。私は、Webページを巧みに掻き集めて、必要な情報を抽出することができました。このページリンクをhref属性ですぐに利用できるいくつかのWebサイトでこれを実行しています。私の質問は、ページネーション変数は動的であるとき、次のページに移動しない方法です:nodejs/cheerio/x-rayのダイナミックリンク

<ul> 
    <li> 
     <a class="clickPage" href="javascript:previousPage()">1</a> 
    </li> 
    <li> 
     <a class="clickPage active" href="javascript:currentPage()">2</a> 
    </li> 
    <li> 
     <a class="clickPage" href="javascript:nextPage()">Next Page</a> 
    </li> 

これまでのところ、ここでのコードは、私が持っているものであるとして、他のサイトも

var request = require('request'),  // simplified HTTP request client 
    cheerio = require('cheerio'),  // lean implementation of core jQuery 
    Xray = require('x-ray'),   // 
    x = Xray(), 
    fs = require('fs');     // file system i/o 

/* 
    TODO: Make this feature dynamic, to take in the URL of the page 
    var pageUrl; 
*/ 

var status = 'for sale'; 
var counter = 0; 

x('http://www.example.com/results/1', '.results', [{ 
    id: '[email protected]', // extracts the value from the attribute id 
    title: 'div.info h2', 
    category: 'span.category', 
    price: 'p.price', 
    count: counter+1, // why doesnt this update? this never shows in the json 
    status: status  // this value never shows up in the json 
}]) 
    .paginate(whatShouldThisBe) 
    .limit(800) 
    .write('products.json'); 

countの値のために働くと生成されたJSONファイルにステータスが表示されることはありません。私はここで何が間違っているのか分かりませんが、すべての助けに感謝します。

ありがとうございます!

答えて

0

.paginate('ul li:nth-child(3) [email protected]')を試しましたか?

このようにして、<ul>の3番目の<li>が得られます。

+0

私にお知らせいただきありがとうございます。私はあなたが属性値( "@href")を省略している気づいしかし ' : ' .paginate( 'n番目の子の@ hrefのUL李:')私はこれを試してみました。やった理由はありますか?ちょっと覚えておいて、リンクはオンザフライで作成されます(onClick)。 – johnanish

関連する問題