Проблема параметра командной строки

У меня есть сценарий удара, названный test.sh, и это текущий:

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

Кроме тех случаев, когда я работаю ./test.sh http://www.fox.com или любой веб-сайт, в story.txt говорится:

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

Как я фиксирую его так, чтобы, когда я открываю story.txt, он отобразил фактический дамп URL?

1
задан 7 December 2012 в 00:12

2 ответа

Этот URL также выдает ошибку с curl:

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>

Очевидно, что на сайте происходит странный анализ пользовательского агента. Передача пользовательского агента Firefox, кажется, работает:

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>
0
ответ дан 7 December 2012 в 00:12

Ваш сценарий не работает для меня, но я думаю, что он работает для вас, поэтому у нас может быть другая настройка. Я изменил сценарий на

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

Я запускаю его с

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

и получаю тот же результат.

Вместо запуска скрипта с fox.com попробуйте с techland.ro, и вы увидите, что скрипт на самом деле работает просто отлично. Проблема не в вашем скрипте, а в веб-сайте, к которому вы пытаетесь получить доступ. Я считаю, что он блокирует сканеры веб-сайтов, потому что lynx - это браузер командной строки, который на самом деле действует точно так же, как сканер, и в результате вы получаете сообщение.

Вы можете установить различные правила для веб-сайтов. Если веб-сайт блокирует неизвестных сканеров, он также, вероятно, будет блокировать lynx (или любой другой браузер командной строки). Ваш сценарий в порядке, сайт блокирует вас.

0
ответ дан 7 December 2012 в 00:12

Другие вопросы по тегам:

Похожие вопросы: