Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Info Coronavirus/Vaccinare vs Fake News

Programare Sala Tulcea

Tensiune mica Smart Forfour 2017

Reglaj a
 Desparțire de sotie

Problema combina frigorifica

Persoanele care nu se scalda (in ...

Redmi K50 in Reteaua Digi
 Revolut x Vodafone - Obține ...

Cade internetul la platformele St...

Rulouri de aluminiu DIY

Despre Monitorizarea Sunetului &#...
 Șeful bancii centrale a Polo...

Ac adaptor HKA 12150EC 230

Dosarul Revoluției: „g...

Difuzor pentru smart Tv
 

Inca o problema legata de parsarea unui site web...

- - - - -
  • This topic is locked This topic is locked
9 replies to this topic

#1
anz

anz

    Member

  • Grup: Members
  • Posts: 541
  • Înscris: 16.02.2013
Salutare tuturor.
Am pus acum ceva timp o intrebare aici despre cum as putea sa construiesc un parser pentru site-ul Devjob.ro, si ii multumesc celui care mi-a dat raspunsul.
In prezent ma confrunt cu inca o problema, tot de parsarea unui site, de data asta ro.indeed.com
Task-ul este in felul urmator: am nevoie sa culeg de pe acest site numai anunturile despre joburi din domeniul IT din ziua curenta. Pentur asta, daca aleg  aceste filtre in pagina, se obtine urmatorul URL: https://ro.indeed.co...?q=it&sort=date
Problema este ca eu cand fac request la acest URL din aplicatia mea Spring, in felul urmator:
                  Jsoup.connect("https://ro.indeed.co...q=it&sort=date").get();
nu primesc acest document cu anunturile sortate dupa data, am verificat asta la consola, dupa ce am extras datele de anunturi, pe care le-am afisat cu System.out.println(). Se afisaza la consola cu totul altceva decat cele care sunt in pagina de la URL-ul repectiv.
Imi spune si mie cineva, unde anume este gresit? De ce nu vine de la server exact documentul care se afisaza in browser...? Mai trebuie sa fac ceva setari, sau ce Doamne-iarta-ma mai trebuieste facut? Pentru ca jur ca mi-au dat de cap site-scrapperele astea, nu stiu ce sa le mai fac.
Daca nu primesc documentul cu joburile sortate atunci toata aplicatia este egala cu 0, nu am cum sa caut prin toate paginile site-ului doar cele care imi trebuie mie (vreo cateva...)
Multumesc celui care se oboseste sa citeasca, si mai mult daca si stie cum sa raspunda!

#2
robert23mg

robert23mg

    Junior Member

  • Grup: Junior Members
  • Posts: 186
  • Înscris: 18.06.2017
Se pare ca intregul document este generat pe server cu tot cu js, vezi daca te ajuta poza asta, trebuie sa ajungi cumva la acel jobmap, alea sunt rezultatele sortate.

res.png

Attached Files

  • Attached File  res.png   149.06K   29 downloads


#3
anz

anz

    Member

  • Grup: Members
  • Posts: 541
  • Înscris: 16.02.2013

View Postrobert23mg, on 10 februarie 2022 - 17:42, said:

Se pare ca intregul document este generat pe server cu tot cu js, vezi daca te ajuta poza asta, trebuie sa ajungi cumva la acel jobmap, alea sunt rezultatele sortate.
O sa te rog frumos sa fii mai explicit, eu sunt incepator in domeniu, de-abia de curand am auzit despre functia Network Tab a browserului. Cum anume generezi acel document cu variabilele Javascript? Si de ce nu se genereaza rezultatele in doc. HTML ci in Javascript? Ma poti ajuta te rog?

#4
robert23mg

robert23mg

    Junior Member

  • Grup: Junior Members
  • Posts: 186
  • Înscris: 18.06.2017
Fisierele unui site se afla pe un server.
Comunicarea intre browser si server se face prin socket sau perechi de http request-response.
Browserul trimite un request catre server iar acesta raspunde cu o resursa/informatie.
In cazul de fata, nu exista o ruta separata care sa iti serveasca in raspuns doar un array cu rezultate, ci serverul asambleaza intreaga pagina (html, css si javascript) si o serveste intr-un singur raspuns, iar browserul ti-o afiseaza pe ecran.

#5
anz

anz

    Member

  • Grup: Members
  • Posts: 541
  • Înscris: 16.02.2013

View Postrobert23mg, on 10 februarie 2022 - 19:19, said:

Fisierele unui site se afla pe un server.
Comunicarea intre browser si server se face prin socket sau perechi de http request-response.
Browserul trimite un request catre server iar acesta raspunde cu o resursa/informatie.
In cazul de fata, nu exista o ruta separata care sa iti serveasca in raspuns doar un array cu rezultate, ci serverul asambleaza intreaga pagina (html, css si javascript) si o serveste intr-un singur raspuns, iar browserul ti-o afiseaza pe ecran.
Eu nu m-am referit la treaba asta... eu am zis ca documentul care se obtine dupa aplicarea filtrelor de data (care este cel pe care il vezi tu in DevTools-ul browserului) nu este acelasi cu cel pe care il obtin cand fac request-ul din aplicatia mea Java: Jsoup.connect("link_URL").get;
In urma acestui request se obtine un obiect Document, care bineinteles vrea sa reprezinte acel document HTML. Im momentul cand eu merg pe arborele DOM si selectez numele job-ului si compania ca sa il afisez la consola: SURPRISE !!!!  se afisaza cu totul si cu totul alte job-uri, nu cele care apar in pagina din browser...
INtrebarea mea este DE CE ??? aplicatia mea Jsoup nu obtine acel document HTML, care este de cuviinta sa se obtina...???

In al doilea rand nu am de ce sa parsez array-ul tau Javascript pe care l-ai scris mai sus deoarece toata informatia se gaseste in documentul HTML. In fogura atasata se poate vedea ca un element din acela <a> cu background galben reprezinta un anunt de job din pagina. Si in doc. acesta HTML intr-adevar anunturile sunt cele sortate, obtinute in urma filtrarii dupa data, asa cum se vede si in browser.
Insa repet, aplicatia mea Java, dupa ce fac requestul la acest document NU il primesc pe acesta, ci altul, care are alte anunturi in pagina...

Attached Files


Edited by anz, 10 February 2022 - 20:02.


#6
darkangel2

darkangel2

    Active Member

  • Grup: Members
  • Posts: 1,215
  • Înscris: 26.01.2019
Daca accesez http://ro.indeed.com...?q=it&sort=date din Firefox, obtin niste rezultate.
Daca il accesez din Chrome Guest, obtin alte rezultate.
Daca astept cateva minute si accesez din alt Chrome Guest, obtin alte rezultate.
"E de la ei!" :D

#7
radu103

radu103

    Senior Member

  • Grup: Senior Members
  • Posts: 7,836
  • Înscris: 15.11.2003

View Postdarkangel2, on 10 februarie 2022 - 22:04, said:

Daca accesez http://ro.indeed.com...?q=it&sort=date din Firefox, obtin niste rezultate.
Daca il accesez din Chrome Guest, obtin alte rezultate.
Daca astept cateva minute si accesez din alt Chrome Guest, obtin alte rezultate.
"E de la ei!" Posted Image
Voi credeti ca toti sunt fraieri ca sa le faceti voi clona la continut ?
Lasati-va de activitatile astea pana nu va cauta avocatii si/sau procurorii dupa caz

#8
darkangel2

darkangel2

    Active Member

  • Grup: Members
  • Posts: 1,215
  • Înscris: 26.01.2019
Care "voi"? :D

#9
anz

anz

    Member

  • Grup: Members
  • Posts: 541
  • Înscris: 16.02.2013

View Postdarkangel2, on 10 februarie 2022 - 22:21, said:

Care "voi"? Posted Image
Nevermind, am rezolvat oricum si merge asa cum ii, culege anunturile din ziua de azi...
Concluzia: o porcarie de site !!!

#10
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 27,741
  • Înscris: 10.08.2005

interesant ca este onpircarie dat totusi le extragi continutul
ce faci tu nu este un "parser html" ci un crawler care sa navigheze si sa culeaga date.
Acum, cat de bucurosi o sa fie oamenii unde tu indrepti "robotul" e treaba lor, si daca simt ei va fi si a ta.

Raspunsul la intrebarea "De ce" poate fi de simplul "javascript", pana la "site-ul ofera ce vrea, pe baza de cookies".
Radu nu iti spune in nume de rau,
Ca sa fie in ton cu concluzia ta, topicul se inchide, cu mentiunile:
1. Nu mai furati continut.
2. parserul deja exista, jsoup
3. ceea ce face ca problema ta sa tina de JAVA si metode specifice suportate de jsoup


Anunturi

Second Opinion Second Opinion

Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale.

Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate