CURL komut satırı ile yönlendirmeleri takip etmenin bir yolu var mı?


456

Bir php komut dosyasında biliyorum:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

yönlendirmeleri izleyecek. CURL komut satırı ile yönlendirmeleri takip etmenin bir yolu var mı?

Yanıtlar:


763

Konum başlığı bayrağını kullanın:

curl -L <URL>


1
Bu, e-tablolara erişmek için Google ile kimlik doğrulamasıyla da çalışmaz. : /
fatuhoku

13
man curl: "Kimlik doğrulama kullanıldığında, curl yalnızca ilk ana bilgisayara kimlik bilgilerini gönderir. <...> Ayrıca bkz. - bunun nasıl değiştirileceği konusunda güvenilir konum."
Hudolejev

25

Benzer bir sorun yaşadım. Çözümümü buraya gönderiyorum çünkü yorumculardan birine yardımcı olabileceğine inanıyorum.

Benim için engel, sayfanın bir giriş yapması ve ardından bana javascript aracılığıyla yeni bir URL vermesiydi. İşte yapmam gereken şey:

curl -c cookiejar -g -O -J -L -F "j_username=yourusename" -F "j_password=yourpassword" <URL>

J_username ve j_password, web sitemin giriş formu için alanların adıdır. Sizin durumunuzda kullanıcı adı alanının 'adının' ve şifre alanının 'adının' ne olduğunu görmek için web sayfasının kaynağını açmanız gerekecektir. Bundan sonra yeni URL gömülü java komut dosyası ile bir html dosyası gidin. Bunu ayrıştırdıktan sonra yeni URL ile yeniden gönderin:

curl -c cookiejar -g -O -J -L -F "j_username=yourusename" -F "j_password=yourpassword" <NEWURL>


15

Söylendiği gibi, yönlendirmeleri takip etmek için bayrağı -Lveya şunları kullanabilirsiniz --location:

curl -L http://www.example.com

Ancak, yeniden yönlendirme sayısını sınırlamak istiyorsanız , parametreyi ekleyin--max-redirs

--max-redirs <num>

İzin verilen maksimum yönlendirme takibi sayısını ayarlayın. Eğer -L, --locationkullanılan bu seçenek "absurdum içinde" yönlendirmeleri aşağıdakilerden curl önlemek için de kullanılabilir. Varsayılan olarak, sınır 50 yeniden yönlendirmeye ayarlıdır. Sınırsız yapmak için bu seçeneği -1 olarak ayarlayın. Bu seçenek birkaç kez kullanılırsa, son seçenek kullanılır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.