RSS: Non scarica per via dell'errore 406 Not Acceptable

Difficoltà con il BOT ? Qui puoi esporre i tuoi problemi.
BuDuS
Amministratore
Messaggi: 364
Iscritto il: 19/07/2009, 14:15
Contatta:

RSS: Non scarica per via dell'errore 406 Not Acceptable

Messaggioda BuDuS » 25/04/2010, 1:00

Se il sistema non sembra comunicare nessuna news da un feed RSS, occorre controllare che lynx sia in grado di eseguire il download correttamente; per farlo utilizzare questo comando da terminale:

Codice: Seleziona tutto

lynx -source rss_url

dove rss_url va sostituito con il percorso del feed RSS; ad esempio:

Codice: Seleziona tutto

lynx -source http://budus.ilbello.com/?feed=rss2

Se la risposta che si ottiene è simile alla seguente:

Codice: Seleziona tutto

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>406 Not Acceptable</title>
</head><body>
<h1>Not Acceptable</h1>
<p>An appropriate representation of the requested resource / could not be found on this server.</p>
</body></html>

significa che il server sul quale è ospitato il feed RSS esegue un controllo del software client che richiede la pagina e, se ne individua uno non abilitato, di fatto lo censura.

Fino a quando non si aggiornerà il BOT, sarà possibile risolvere il problema modificando il file budus_rss.sh alla riga 375 in modo che da così:

Codice: Seleziona tutto

          lynx -source "${rss_url}" | sed 's/%/%%/g' > ${rss_filename}.dat &

diventi così:

Codice: Seleziona tutto

          lynx -useragent="Googlebot/2.1_Lynx" -source "${rss_url}" | sed 's/%/%%/g' > ${rss_filename}.dat &

facendo in modo che il server venga "ingannato", credendo che sia il crawler di Google ad eseguire uno scan.

BuDuS
Amministratore
Messaggi: 364
Iscritto il: 19/07/2009, 14:15
Contatta:

Re: RSS: Non scarica per via dell'errore 406 Not Acceptable

Messaggioda BuDuS » 25/04/2010, 17:06

Mi è stato segnalato che, effettuando la modifica di cui sopra, lo script non funziona più correttamente quando la risposta del server supera 1 secondo.
È quindi necessario modificare il file budus_rss.sh anche alla riga 51 in modo che da così:

Codice: Seleziona tutto

   pid_of_lynx_process=$(ps -ef |\
          grep -F "lynx -source" |\
          grep -v grep\
          | sed s/[a-zA-Z]//g\
          | sed s/^\ *// |\
          cut -f1 -d' ')

diventi:

Codice: Seleziona tutto

   pid_of_lynx_process=$(ps -ef |\
          grep  "lynx .* -source" |\
          grep -v grep\
          | sed s/[a-zA-Z]//g\
          | sed s/^\ *// |\
          cut -f1 -d' ')

Questa modifica andrà a ristabilire il controllo del processo di download del Feed RSS.


Torna a “Supporto BOT”

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite