Răzuirea web modernă cu BeautifulSoup și seleniu

Prezentare generală

HTML este aproape intuitiv. CSS este o avansare excelentă care separă curând structura unei pagini de aspectul ei. JavaScript adaugă unele pizazz. Aceasta este teoria. Lumea reală este puțin diferită.

În acest tutorial, veți afla modul în care conținutul pe care îl vedeți în browser devine realmente redat și cum se poate schimba atunci când este necesar. În special, veți afla cum să numărați comentariile Disqus. Instrumentele noastre vor fi Python și pachete minunate precum cererile, BeautifulSoup și Selenium.

Când ar trebui să utilizați răzuirea pe Web?

Înlăturarea paginilor web este practica preluării în mod automat a conținutului paginilor web destinate interacțiunii cu utilizatorii umani, parsarea acestora și extragerea unor informații (eventual navigarea către alte pagini). Este uneori necesar să nu existe altă modalitate de extragere a informațiilor necesare. În mod ideal, aplicația oferă un API dedicat pentru accesarea datelor sale programabil. Există mai multe motive pentru că răsturnarea web ar trebui să fie ultima dvs. soluție:

  • Este fragil (paginile web pe care le răzuiți s-ar putea schimba frecvent).
  • Poate fi interzis (unele aplicații web au politici împotriva răzuinței).
  • S-ar putea să fie lentă și expansivă (dacă aveți nevoie să aduceți și să faceți o mulțime de zgomot).

Înțelegerea paginilor web din lumea reală

Să înțelegem ce ne confruntăm, analizând rezultatele unor coduri comune de aplicații web. În articolul Introducere la Vagrant, există câteva comentarii Disqus în partea de jos a paginii:

Pentru a elimina aceste comentarii, trebuie să le găsim pe prima pagină.

Vezi sursa paginii

Fiecare browser de la începutul anilor 1990 a sprijinit abilitatea de a vizualiza codul HTML al paginii curente. Aici este un fragment din sursa de vizualizare a Introducere în Vagrant, care începe cu o mare bucată de JavaScript minimalizat și uglificat care nu are legătură cu articolul în sine. Aici este mic parte din acesta:

Iată câteva coduri HTML reale din pagină:

Acest lucru pare destul de murdar, dar ceea ce este surprinzător este că nu veți găsi comentariile Disqus în sursa paginii.

Cadrul Inline Mighty

Se pare că pagina este un mashup, iar comentariile Disqus sunt încorporate ca un element iframe (cadru inline). Puteți afla acest lucru făcând clic dreapta pe zona de comentarii și veți vedea că există informații despre cadre și sursă acolo:

Are sens. Incorporarea conținutului terță parte ca cadru iframe este unul din motivele principale de utilizare a cadrelor iframe. Hai să găsim