2014-07-11 53 views
0

我在這裏是新來的,有一個問題,我已經看了一會兒,現在一直在嘗試解決。我正在開發一個web crawler-esque bash腳本;很簡單。 我希望訪問一個網站,其中某個ID附加到該網址。我希望通過這些給定的傳遞參數來增加邊界。我已經取得了一些成功,但我注意到它並不總是可靠的。我目前正在使用cygwin,因爲我在windows上,想知道這是否是這個問題。另外,因爲這是一個漫長的過程,我已經複製了這個文件,並且每個文件都增加了2個。我研究過人們遇到的類似問題,並提出了需要管理Cookie的問題。我想知道我會去做這件事。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 

我甚至從BASH循環運行得捲曲命令獨立,它仍然有時無法按照頁面的重定向。

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

更奇怪的是,我有我的iPhone上的腳本的副本,當我通過移動終端運行時,它似乎更可靠。我在cygwin上運行,我注意到,當發生這種情況時,每個假定的重定向網頁的輸出字符串被攪動得更快。

這可能是硬件問題?我對此非常困惑,並且無濟於事找遍了所有的幫助。 任何幫助將不勝感激。 謝謝!

+0

什麼並不總是可靠嗎?什麼不行?有錯誤嗎? –

+0

@EtanReisner沒有錯誤,它只是有時不會接受重定向。我將訪問其中一個似乎沒有重定向的輸出url,但在瀏覽器中,Redirected_String將被更改。 – Zack

+0

你確定這是捲曲,而不是網站被破壞?告訴curl將完整事務轉儲到日誌文件中,並查看在這些情況下獲得的結果(或使用數據包捕獲)。 –

回答

1

相反的for i in $(eval echo {$1..$2..2})您可以在BASH算術括號((...))做到這一點:

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

謝謝!我在命令中所做的是用&調用這兩個腳本,並從第一個起始點改變第二個腳本。 – Zack

+0

您可以用curl命令替換'echo「$ i」',並在循環內執行其他任何操作。 – anubhava

+0

再次感謝!儘管命令可以運行,但我仍然遇到cURL一致性問題。有什麼想法嗎?你的洞察力將不勝感激。 – Zack