Hier ist was ich versuche zu erreichen. Ich bin in der Lage, eine Webseite erfolgreich zu scrappen und dann die benötigten Informationen zu extrahieren, und ich habe dies bereits auf einigen Webseiten ausgeführt, wo die Paginierungslinks im href-Attribut leicht verfügbar sind. Meine Frage ist, wie auf die nächste Seite navigiere, wenn die Paginierung Variable ist dynamisch:dynamische links in 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>
So weit Code hier ist, was ich habe Arbeit für andere Websites
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');
Auch der Wert der Zählung und Der Status wird nie in der generierten JSON-Datei angezeigt. Ich bin mir nicht sicher, was ich hier falsch mache, würde aber jede Hilfe zu schätzen wissen.
Danke!
Danke, dass Sie mich wissen lassen. Ich habe dies versucht: '.paginate ('ul li: nth-child a @ href')' Jedoch habe ich bemerkt, dass Sie den Attributwert weggelassen ("@href"). Gibt es einen Grund dafür? Nur eine sanfte Erinnerung, die Links werden im Handumdrehen erstellt (onClick). – johnanish