Uruchomienie bazy aplikacji scrapingu

Uruchomienie bazy aplikacji scrapingu
D1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 99
0

Witam

Problem Panowie wygląda następująco. Pisze prosta aplikacje które samodzielnie będzie wyszukiwała interesujące mnie linki w google/yahoo więc potanowiłem do tego zaprzęgnąć mechanizm web crappingu. Problem jest tylko taki , że cały czas kompilatory online wydaja mim błąd ,,Could Not Resolve Host ". Podobno ma to coś wspólnego z protokołem IPv4, ale nie wiem na ile to prawda. Może w końcu wydostane się z tej dziury :-p

Poniżej dołączam kod

Kopiuj
<?php

$curl = curl_init();
$url = "https://www.google.com/search?q=sport+news";

curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, curlopt_RETURNTRANSFER, true);
curl_setopt($curl, curlopt_FOLLOWLOCATION, true);

$result = curl_exec($curl);
curl_close($curl);

echo $result;
?>
RD
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 77
2

Kompilatory online uruchamiają kod na izolowanych środowiskach i nie mają dostępu do Internetu. Inaczej taki kompilator mógł by służyć za botnet. Odpal to na swojej maszynie, albo jakimś ssh. Niemniej nie wiem, czy w taki sposób cokolwiek wyscrappujesz, natomiast na pewno trochę pocrapujesz ;) Zauważ, że obecnie sporo aplikacji dociąga rzeczy po przez JS a czasem nawet po websocket czy signalR. Jak chcesz scrappować, to czasem będziesz musiał wyrenderować stronę. Warto się zainteresować chrome headless jako libką. Aczkolwiek patrząc po pytaniu nie wróżę niczego udanego. Spróbuj scrappować prostsze rzeczy na początek. Aczkolwiek patrząc na to, że jesteś tutaj od13 lat zastanawiam się, czy to nie troll?

obscurity
  • Rejestracja: dni
  • Ostatnio: dni
2

Jak wyżej - kompilatory online są w sandboksie i po prostu nie mają dostępu do internetu, więc pobieranie się nie powiedzie. Faktycznie ma to w pewnym sensie coś wspólnego z protokołem IPv4 😄 W podobny sposób jak brak światła w lodówce ma coś wspólnego z przepływem elektronów gdy nie zapłacisz rachunku za prąd.
Obierz sobie łatwiejszy cel niż google, google ma zabezpieczenia przed scrapingiem (nie crappingiem 😄 ) i po max kilku zapytaniach cię zablokuje i spyta o captchę. Proponuję wykorzystać do tego API AI - ten nie tylko ma integrację z googlem i może wyszukać linki, ale od razu może przefiltrować te linki według twoich wskazań.
Ewentualnie po prostu użyj API wyszukiwarki której chcesz np https://developers.google.com/custom-search/v1/overview - to oficjalna ścieżka i nikt cię nie będzie blokował. Scrapowanie jest zabronione regulaminem większości stron

SL
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1022
0

Polecam użyciego jakiegoś LLMa do wygenerowania scrapera pod twoje potrzeby. To bardzo early-level, więc z jakością kodu nie powinno być problemu

D1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 99
0

roark.dev niestety nie ma znaczenia 13 czy 20 lat. Żaden ze mnie troll, bo po prostu zadaje pytania. Mówisz ,,wtyczka" headless zobaczę, ale nie wiem czy to da mi to czego potrzebuję ;)

mistyk
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 19
0
delform_17 napisał(a):

Mówisz ,,wtyczka" headless zobaczę, ale nie wiem czy to da mi to czego potrzebuję ;)

Nawet w trybie headless możesz mieć problemy z akceptacją przez niektóre strony. Możesz spróbować użyć obrazu od Selenium który teoretycznie odpala ci przeglądarkę ale na kontenerze. Z faktycznym otwieraniem przeglądarki obsłużysz większą ilość stron.

RD
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 77
0

@delform_17: na pewno headless zrobi więcej niż get przez curla. Koledzy mówią o selenium - wydaje mi się, że headless działa tak samo. Żeby np. Załadować całą treść i tak trzeba dawać jakiś input i badać. Selenium może to ułatwić ale tylko inicjalny krok. Np dane z dynamicznie odczytywanych wyników trzeba sobie “przeskrollować”. Co do wieku konta - po prostu nie wiem jak ktoś kto tyle lat programuje piszę w webowych kompilatorach i jeszcze chce z nich przeglądać Internet. Już 20 lat temu były różne WAMPy czy LAMPy.

D1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 99
0

Reasumując post, wyrazy wdzęczności za udzieloną pomoc oraz pamiętajmy człowiek uczy się czegoś nowego całe życie, a zastój to najgrsze co może być ;)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.