Newsgroup: it.comp.www.php
Titolo: Prelievo dati di un sito

Lo script e sotto riportato provvede a prelevare dei singoli annunci da 
un sito
 
su altri siti Funziona correttamente  ma sul sito inserito sembra che è 
bloccato da qualcosa in quanto non stampa niente a video
 
 
#  SCARiCA UNA PAGINA WEB
############################################# #  
 
 
$opts = array(
 'http'=>array(
   'method'=>"GET",
   'header'=>"Accept-language: en\r\n".
             "Cookie: foo=bar\r\n".
             "User-Agent: Mozilla/5.0 (Windows NT 6.1) 
 
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 
 
Safari/537.36\r\n"
 )
);
$context = stream_context_create($opts);
$url = "
https://www.infojobs.it/offerte-lavoro
";
$input = file_get_contents($url, false, $context);
 
# echo $input;
 
$regexp = "<a\s[^>]*href=(\"??)([^\" >]*?)\\1[^>]*>(.*)<
 
\/a>";
if(preg_match_all("/$regexp/siU", $input, $matches, 
 
PREG_SET_ORDER))
{
foreach($matches as $match)
{
$href = strtolower($match[2]);
$inner = strtolower($match[3]);
$pos = (strpos($inner,'<img')> 0) ? true : false;
$inner = strip_tags($inner);
$inner = ($inner == "") ? $url : $inner;
if(!$pos)
$linko = '<a href="' . $href . '">' . $inner . '</a><br/>';
 
#  CERCA 
 
$testoannu=substr($href,-4,4);
if ($testoannu == '-new' ) {
 
$contenuto = 'https:'.$href;
 
echo $contenuto;
echo "<BR>";
 
$annuncio = file_get_contents($contenuto, false,
 
$context);
 
echo $annuncio;
echo "<BR>";
}
 
}
}
 

 $regexp = "<a\s[^>]*href=(\"??)([^\" >]*?)\\1[^>]*>(.*)<
 
 
Le espressioni regolari funzionano in un certo numero di casi e non sono
da utilizzare per "parsare" l'html.
-- 
Sandro kensan 
www.kensan.it
 & 
www.qiqi.it
 geek site
Saluto gli agenti della NSA - Hello NSA - 
www.nsa.gov
 

 ha scritto:


 echo $input;
 
$ wget 
https://www.infojobs.it/offerte-lavoro
 
HTTP request sent, awaiting response... 405 Not Allowed
 
Ho lavorato in un'azienda che faceva scraping di siti di cerca/trova 
lavoro per gli ultimi due anni, e fidati: quello che stai cercando di 
fare non è per niente semplice.
 
Sanno che ci sono script che fanno scraping, e ogni 3-4 mesi cambiano 
qualcosa per romperli: dal richiedere header particolari nella richiesta 
al dover usare un browser per eseguire certe azioni in javascript.
 
È una guerra continua. Noi avevamo 2-3 persone fisse 8 ore al giorno ad 
adattare gli script (su circa 200 siti), più il team legal ad analizzare 
sito per sito cosa si potesse fare e cosa no.
 
Bye.

bloccato da qualcosa in quanto non stampa niente a video
 
Non è che è "bloccato": riconosce che è contattato da uno script prelevatore
e ti manda una pagina dove quei link che cerchi non ci sono proprio (la vera
pagina è lunga circa 220K, quella che scarichi tu sono 37823 byte: fa' i tu'
conti...).
 
Domanda retorica: tu ce l'hai il permesso di infojobs di accedere al loro DB
con strumenti automatizzati?
 
Leonardo
 
-- 
 
Ya se escucha sonar la metralla, ya el clarín toca fuego graneado:
ahora o nunca, muchachos arriba a acabar a estos hijos del diablo.


10 volte questo.
 
Dove stavo prima facevamo scraping di offerte promozionali su vari prodotti.
Ho addirittura scritto un motore di scraping programmabile in un linguaggio
simil xpath che mi sono inventato, per avere una decina di righe di script
per sito, in maniera da poterli aggiustare al volo in maniera semplice:
niente da fare, anche così era un lavoro a tempo pieno.
 
Lavorare in questo modo è veramente una brutta bestia.
 
Ciao!