Problema de argumento de linha de comando

1

Eu tenho um script bash chamado test.sh e atual:

url=
lynx -dump $url > story.txt
echo "step one completed"

Exceto quando eu executo ./test.sh http://www.fox.com ou qualquer site, story.txt diz:

                            Forbidden
   You don't have permission to access / on this server.

Como corrijo para que, quando abro o arquivo story.txt, ele exiba o despejo real da URL?

    
por helloworld 06.12.2012 / 21:07

2 respostas

4

Seu script não funciona para mim, mas eu acho que é para você, então podemos ter uma configuração diferente. Eu mudei o script para

lynx -dump  > story.txt
echo "step one completed"

Eu corro com

 ./test.sh http://www.techland.ro

e eu obtenho o mesmo resultado.

Em vez de executar o script com fox.com, tente com techland.ro e você verá que o script realmente funciona bem. O problema não está no seu script, mas no site que você está tentando acessar. Acredito que bloqueie os rastreadores de sites, porque o lynx é um navegador de linha de comando que realmente funciona exatamente como um rastreador, resultando na mensagem que você recebe.

Você pode definir regras diferentes para websites. Se um site bloquear rastreadores desconhecidos, ele também bloqueará o lynx (ou qualquer outro navegador de linha de comando). Seu script está bem, o site está bloqueando você.

    
por Mihai P. 06.12.2012 / 21:39
4

Esse URL dá um erro com curl também:

curl -i http://www.fox.com/
HTTP/1.1 403 Forbidden
Server: AkamaiGHost
Mime-Version: 1.0
Content-Type: text/html
Content-Length: 260
Cache-Control: max-age=3600
Date: Thu, 06 Dec 2012 20:17:17 GMT
Connection: close

<HTML><HEAD>
<TITLE>Access Denied</TITLE>
</HEAD><BODY>
<H1>Access Denied</H1>

You don't have permission to access "http&#58;&#47;&#47;www&#46;fox&#46;com&#47;" on this server.<P>
Reference&#32;&#35;18&#46;2fa2f5cc&#46;1354825037&#46;8323a81
</BODY>
</HTML>

Aparentemente, o site está fazendo algum agente de usuário estranho cheirando. Passar um agente de usuário do Firefox parece funcionar:

curl -i -A 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:17.0) Gecko/17.0 Firefox/17.0' http://www.fox.com/
HTTP/1.1 200 OK
Server: Apache
Content-Length: 70647
Content-Type: text/html; charset=utf-8
X-FarmName: www.fox.com
X-FarmAddr: 10.96.57.103
Cache-Control: max-age=3600
Date: Thu, 06 Dec 2012 20:22:58 GMT
Connection: keep-alive

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:tp="http://player.theplatform.com/" xmlns:og="http://ogp.me/ns#" xmlns:fb="http://www.facebook.com/2008/fbml" >
<head>
        <title>FOX Broadcasting Company - FOX Television Shows</title>
    
por sierrasdetandil 06.12.2012 / 21:24