Baixando o XCode usando wget ou curl [closed]

6

Existe uma maneira de fazer o download do XCode usando curl ou wget?

EDIT: Por que o snippet de onda a seguir não está funcionando?

Primeiro, faço login no site da Apple:

curl -d "theAccountName=USERNAME&theAccountPW=PASS" -c xcode-cookie 
-A "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1" 
https://daw.apple.com//cgi-bin/WebObjects/DSAuthWeb.woa/104/wo/W1df7WQblBsLekQzvS1tJ0/0.5.3.1.1.2.1.1.3.1.1"

Então, tento fazer o download do arquivo:

curl -b xcode-cookie -c xcode-cookie -O -v -A 
"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1"
http://adcdownload.apple.com/ios/ios_sdk_4.0.2__final/xcode_3.2.3_and_ios_sdk_4.0.2.dmg

No entanto, recebo um erro 403 Proibido:

* About to connect() to adcdownload.apple.com port 80 (#0)
*   Trying 60.254.148.16...   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0connected
* Connected to adcdownload.apple.com (60.254.148.16) port 80 (#0)
> GET /ios/ios_sdk_4.0.2__final/xcode_3.2.3_and_ios_sdk_4.0.2.dmg HTTP/1.1
> User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
> Host: adcdownload.apple.com
> Accept: */*
> Cookie: myacinfo=foo; DefaultAppleID=bar; ds01=baz
> 
< HTTP/1.1 403 Forbidden
< Server: Apache-Coyote/1.1
< X-Powered-By: Servlet 2.4; JBoss-4.0.5.GA (build: CVSTag=Branch_4_0 date=200610162339)/Tomcat-5.5
< no-cache: Cache-Control
< no-store: Cache-Control
< Content-Type: text/html;charset=ISO-8859-1
< Date: Mon, 30 Aug 2010 05:30:42 GMT
< Transfer-Encoding:  chunked
< Connection: keep-alive
< Connection: Transfer-Encoding
< Cache-Control: no-store
< 
{ [data not shown]
100  1932    0  1932    0     0   7531      0 --:--:-- --:--:-- --:--:--  8548* Connection #0 to host adcdownload.apple.com left intact

* Closing connection #0
    
por Behrang 25.08.2010 / 14:04

3 respostas

5

Josh pensa com muita simplicidade. O URL para baixar o Xcode é de fato link

No entanto, você deve estar autenticado para fazer o download do arquivo.

Agora tanto o Wget quanto o cURL suportam cookies, mas eu nunca usei o cURL para downloads, então aqui estão algumas linhas usando o Wget para primeiro autenticar no site do desenvolvedor (armazenando os cookies de autenticação em um arquivo cookies.txt), então outro linha para realmente pegar o download (lembrando que o mesmo arquivo cookies.txt):

wget --post-data="theAccountName=YOURUSERNAME&theAccountPW=YOURPASSWORD" --cookies=on --load-cookies=cookies.txt --keep-session-cookies --save-cookies=cookies.txt https://daw.apple.com/cgi-bin/WebObjects/DSAuthWeb.woa/67/wo/99OWdOWyhWA2pMdrPemdSw/0.5.3.1.1.2.1.1.3.1.1
wget --cookies=on --load-cookies=cookies.txt --keep-session-cookies --save-cookies=cookies.txt http://developer.apple.com/iphone/download.action?path=%2Fios%2Fios_sdk_4.0.2__final%2Fxcode_3.2.3_and_ios_sdk_4.0.2.dmg

Certifique-se de alterar YOURUSERNAME e YOURPASSWORD para os valores apropriados e altere o caminho para o arquivo cookies.txt, se desejado. Além disso, observe que a URL do formulário de login pode mudar, portanto, verifique o atributo de ação do formulário de login do seu navegador se isso não funcionar.

Eu testei isso no meu servidor e o download demorou cerca de 40 minutos. Funcionou um prazer!

    
por 25.08.2010 / 17:55
5

Comando único, usando ferramentas de linha de comando do Mac OS X 10.6.6 ( bash , curl e sqlite3 ).

curl -b <(sqlite3 -separator $'\t' ~/Library/Application\ Support/Google/Chrome/Default/Cookies "select host_key, 'TRUE','/', 'FALSE', expires_utc, name, value from cookies where host_key like '%apple.com%'") http://adcdownload.apple.com/ios/ios_sdk_4.2__final/xcode_3.2.5_and_ios_sdk_4.2_final.dmg

Advertências:

  1. Isso usa uma consulta do banco de dados de cookies sqlite do Google Chrome.

  2. Você precisa fazer o login na página do desenvolvedor Xcode da Apple com o navegador primeiro para que os cookies sejam configurados.

Notas:

  1. < () é o operador de substituição de processos do bash e elimina o arquivo de cookies temporários instantaneamente obsoletos.

  2. Se, como eu, você estiver retomando um download de navegador parado e você tiver o arquivo, use estes argumentos:

    -C - -o unconfirmed\ 21043.crdownload
    

Agora que você tem o Xcode, você pode instalar o Homebrew e, em seguida, wget. ;)

    
por 18.01.2011 / 08:22
0

Claro, basta copiar o link de download que você recebeu da Apple.

    
por 25.08.2010 / 14:06

Tags