2014-07-11 2 views
0

저는 여기에 새롭다고 생각합니다. 잠시 동안 살펴보고 궁금한 사항이 있습니다. 나는 웹 크롤러 스타일의 bash 스크립트를 개발 중이다. 아주 간단합니다. URL에 특정 ID가 추가 된 사이트를 방문하고 싶습니다. 이 주어진 전달 된 매개 변수를 경계로 증가 시키려고합니다. 나는 이것으로 약간의 성공을 거두었지만 항상 신뢰할만한 것은 아니라고 생각했습니다. 나는 현재 창문에있는 cygwin을 사용하고 있는데 이것이 문제인지 궁금해합니다. 또한 오랜 프로세스이기 때문에 파일을 복제하고 각각 2 씩 증가시킵니다. 사람들이 겪고있는 유사한 문제를 조사한 결과 쿠키를 관리해야합니다. 나는 이것에 대해 궁금해했다.cURL이 항상 리디렉션을 따르지 않는 경우

스크립트 :

for i in $(eval echo {$1..$2..2}) 
do 

url=`curl -b a,, -w "%{url_effective}\n" -L -s -S -o /dev/null http://website.com/page/Redirected_String/$i` 
echo $i - $url 

done 

I가 심지어 BASH 루프에서 바로 curl 명령 독립적으로 실행하고 여전히 때때로 페이지의 리디렉션을 수행하는 데 실패합니다.

curl -b a,, -w "%{url_effective}\n" -L -s -S -o /dev/null http://website.com/page/Redirected_String/100 

내 iPhone에 스크립트 사본이 있으며 모바일 단말기를 통해 실행하면 더 안정적으로 보입니다. Cygwin에서 실행 중이며, 이렇게되면 리디렉션 된 각 웹 페이지의 출력 문자열이 훨씬 빠르게 생성됩니다.

하드웨어 문제 일 수 있습니까? 나는 이것에 대해 매우 혼란스럽고 도움을 구하지 못했다. 도움을 주시면 대단히 감사하겠습니다. 감사합니다. 대신 for i in $(eval echo {$1..$2..2})

+0

신뢰할 항상 무엇을하지? 작동하지 않는 것은 무엇입니까? 오류가 있습니까? –

+0

@EtanReisner 오류가 없으면 때로는 리다이렉션을 선택하지 않습니다. 리다이렉트하지 않는 출력 URL 중 하나를 방문 하겠지만 브라우저에서는 Redirected_String이 변경됩니다. – Zack

+0

웹 사이트가 망가지지 않고 말려 진 것이 확실합니까? curl에게 전체 트랜잭션을 로그 파일에 덤프하고 그 경우에 얻은 것을 확인하거나 패킷 캡처를 사용하도록하십시오. –

답변

1

당신은 BASH 연산 괄호 ((...))이 작업을 수행 할 수 있습니다

for ((i=$1; i<=$2; i+=2)); do echo "$i"; done 
+0

감사! 명령에서 내가하고있는 일은 두 스크립트 모두 &를 사용하여 호출하고 두 번째 스크립트를 1 씩 시작하는 스크립트로 변경하는 것입니다. – Zack

+0

'echo "$ i"'를 curl 명령과 루프 내부에서 수행하려는 다른 작업으로 바꿀 수 있습니다. – anubhava

+0

다시 한번 감사드립니다! 그 명령을 실행할 수 있지만 지금까지도 cURL의 일관성에 문제가 있습니다. 이견있는 사람? 당신의 통찰력은 크게 감사 할 것입니다. – Zack

관련 문제