Parsarea magazinelor online

Deci, acum să începem parserul în sine, mai întâi îmi voi expune codul (pentru cei care înțeleg chiar și un pic, fără comentariile mele) și apoi voi începe să explic totul încet.

var foaie = SpreadsheetApp.getActiveSheet ();

var interval = sheet.getRange ("A2: I5000");

var celula = range.getCell (startRow, 1);

var răspuns = UrlFetchApp.fetch (url);

pentru (var i = 1; i<=10;i++)

Parsarea magazinelor online

Avem 2 funcții, getconten și getPageContent. de la getconten vom transmite datele necesare și vom rula funcția getPageContent pentru a analiza pagina pe care am trecut-o de la getconten.

Funcția getconten: aici avem o buclă egală cu numărul de pagini din această secțiune. Pentru fiecare trecere a ciclului, trimitem un link către pagină și numărul de produse deja procesate.

Și ce fel de legătură ar trebui să introducem pentru site-ul nostru? Cele mai multe dintre site-uri au o structură similară de site.ru / secțiune /? Pagini = 1 sub pagina de cuvânt poate ascunde orice cuvânt în cazul nostru, începe, adesea pagina. Uneori, pe prima pagină a site-ului, această variabilă nu este prezentă, este necesar doar să treci de exemplu spre a doua. Pentru o înțelegere mai bună vă recomand să citiți despre cererile GET aici sau în Google.

Formula 1 + 10 * (j-1) - este necesară pentru a se înregistra mutat, mai degrabă decât suprascrierea documentului, în cazul în care 10 este numărul de intrări (numărul de cont al intrărilor implicite pentru o frecvență mai bună pentru a merge la pagina dorită dintr-un alt browser sau! din fila privată, atunci veți lua pagina exact așa cum vede scriptul dvs.).

Funcția getPageContent: aici este creată magia principală. Cred că aici merită explicat doar punctele principale, mai mult pentru a citi despre fiecare dintre funcțiile pot fi în Google dacă este interesat.

sheet.getRange ("A1: I5000") - aici vom alege gama de celule cu care vom lucra, vă recomand să puneți un mare run-up.

pentru (var i = 1; i<=10;i++) - параметры цикла, где 10 см.формулу выше (!Внимание! цифры должны совпадать с формулой вышей).

Am stabilit parametrii principali, acum suntem gata să configuram parsarea.

Acțiunile viitoare implică faptul că aveți conceptele de bază despre HTML și textul sursă al paginii, dacă nu, vă recomandăm cu insistență să citiți mai întâi despre aceste lucruri.

Și așa a fost analiza zborului:

Pentru a introduce un text în celulă din pagină, trebuie să cunoaștem poziția sa inițială (start) și sfârșitul (sfârșitul). Pentru a face acest lucru, găsim un rând unic pentru elementul pe care dorim să-l împărțim, în cazul imaginii produsului, acesta este șirul

este unic, are doar bunurile în timp ce este disponibil pentru fiecare produs, dar pornind de la această linie, vom lua prea mult, pentru aceasta găsim punctul mai aproape de informațiile necesare și deja îl vom lăsa ca start. Este de neuitat să adăugați numărul tuturor caracterelor din linie.

start = textResp.indexOf ('

', sfârșit) +24;

Cu sfârșitul este chiar mai simplu aici este de obicei o etichetă de închidere sau citate.

Apoi, folosind funcția substring, extragem datele necesare știind de unde pornesc și unde se termină.

Aici atribuim valoarea celulei.

Și treci la noua coloană, rămânând pe aceeași linie .offset (String, Column).

De neuitat la sfârșit, săriți la o nouă linie și reveniți la coloana zero.

celula = cell.offset (1, -5); - unde 5 este numărul de coloane pentru care am lăsat sau, mai simplu, cât de multe date din mărfurile am sparred.

Acum, să vorbim despre avantajele și dezavantajele sale în detaliu:

Este complet universal, iar funcționalitatea acestuia vă permite să vă distrugeți aproape la fel ca cei mai plătiți parseri.

Nu necesită instalarea nici unui software.

Din neajunsurile este prezența unor cunoștințe de bază și existența logicii, bine, un pic de experiență. Nu am folosit alți parseri, dar cred că există aproape același abur de intrare.

Parserul este destul de costal, dar este gratuit, adică va trebui să fie adaptat pentru fiecare sarcină, deci este logic să-l folosiți numai dacă mărfurile sunt mari.

Prima este o parte a textului care se află în fața informațiilor de care aveți nevoie, cum ar fi o etichetă sau altceva. Acest text ar trebui să fie unic. Nu puteți doar să etichetați

să caute. În general, această comandă produce indicele primei apariții a unui substring într-un șir.

+24 este numărul de caractere din șirul de căutare, dacă acest lucru nu este făcut, atunci celula va fi inserată împreună cu această linie.

Această versiune a parserului este destinată catalogului, respectiv previzualizarea mărfurilor. Puteți să o redați astfel încât să fie cartea parsilului dacă aveți nevoie de o astfel de sarcină. Întotdeauna am avut destule.

Deși odată am analizat cărțile în sine, dar a existat odată și nu a fost prea mult, nu vreau să termin așa

// start = textResp.indexOf ('

', sfârșit) +50;

// start = textResp.indexOf ('