Πώς να πάρει το σενάριο Puppeteer / Κόμβος για να διαβάσετε ένα <div> από την κατηγορία του;

ψήφοι
0

Είναι ένας τρόπος για να επιλέξετε ένα εκεί <div>από την τάξη της σε μια webscraper Κόμβος Puppeteer;

Υπάρχει divστην ιστοσελίδα που μοιάζει με αυτό:<div class=Body-body-qL80Q>

Θέλω ξύστρα μου για να αρπάξει το κείμενο από αυτό div. Προς το παρόν, είμαι απλώς προσπαθεί να το γράψετε στην κονσόλα για να βεβαιωθείτε ότι είναι αρπάζοντας το σωστό κείμενο.

Τι είναι λάθος με το μου querySelector; (Ι προηγουμένως είχε το σενάριο μεταβείτε στη σωστή σελίδα και να πάρετε ένα στιγμιότυπο, που το έκανε σωστά, έτσι ξέρω το υπόλοιπο λειτουργεί.)

const puppeteer = require('puppeteer');
const CREDS = require('./creds');

(async () => {
  const browser = await puppeteer.launch({ headless: true });

  const page = await browser.newPage();

  await page.goto('https://www.squarespace.com/login');

  const USERNAME_SELECTOR = '.username.Input-hxTtdt.ipapEE';
  const PASSWORD_SELECTOR = '.password.Input-hxTtdt.ipapEE';
  const BUTTON_SELECTOR = '.Button-kDSBcD.fATVqu';

  await page.click(USERNAME_SELECTOR);
  await page.keyboard.type(CREDS.username);

  await page.click(PASSWORD_SELECTOR);
  await page.keyboard.type(CREDS.password);

  await Promise.all([
    page.waitForNavigation(),
    page.click(BUTTON_SELECTOR),
  ]);

  await page.goto('https://triangle-oarfish-hk88.squarespace.com/config/analytics#activity-log');

  const textContent = await page.evaluate(() => document.querySelector('Body-body-qL80Q').className);

  console.log(textContent);

  await browser.close();
})();

Αυτό είναι το σφάλμα:

(node:6116) UnhandledPromiseRejectionWarning: Error: Evaluation failed: TypeError: Cannot read property 'className' of null
(node:6116) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:6116) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Δημοσιεύθηκε 07/11/2018 στις 23:40
πηγή χρήστη
Σε άλλες γλώσσες...                            


1 απαντήσεις

ψήφοι
1

Μπορείτε ξέχασε να προσθέσει μια περίοδο .πριν από τον επιλογέα κατηγορίας Body-body-qL80Qσου στην document.querySelector()λειτουργία μέσα page.evaluate():

Επίσης, θα πρέπει να είναι με τη χρήση του textContentακινήτου αντί του classNameακινήτου.

Σταθερό σας textContentθα πρέπει να προετοιμαστεί με τον ακόλουθο τρόπο:

const textContent = await page.evaluate(() => document.querySelector('.Body-body-qL80Q').textContent);
Απαντήθηκε 08/11/2018 στις 01:17
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more