我正在尝试使用wget或curl从Apple Developer网站下载Xcode。我认为我成功地存储了我需要下载.dmg文件的cookie,但我并不完全确定。使用wget或curl下载Xcode
当我运行此命令:
wget \
--post-data="theAccountName=USERNAME&theAccountPW=PASSWORD" \
--cookies=on \
--keep-session-cookies \
--save-cookies=cookies.txt \
-O - \
https://developer.apple.com/ios/download.action?path=/ios/ios_sdk_4.1__final/xcode_3.2.4_and_ios_sdk_4.1.dmg > /dev/null
叫cookies.txt
创建一个文件,包含像这样:
developer.apple.com FALSE/FALSE 0 XXXXXXXXXXXXXXXX XXXXXXXXXXXX
developer.apple.com FALSE/FALSE 0 developer.sessionToken
我不能完全肯定,但我认为应该有更多的(比如sessionToken
之后的字母数字字符串)。
当我尝试用这个做同样的事情,卷曲:
curl \
-d "theAccountName=USERNAME&theAccountPW=PASSWORD" \
-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://developer.apple.com/ios/download.action?path=/ios/ios_sdk_4.1__final/xcode_3.2.4_and_ios_sdk_4.1.dmg
我得到了一个名为xcode-cookie
文件,其中包含了相同的信息cookies.txt
文件的wget给我,只是行反转。
然后我试图下载.dmg文件。
使用wget:
wget \
--cookies=on \
--load-cookies=cookies.txt \
--keep-session-cookies \
http://developer.apple.com/ios/download.action?path=/ios/ios_sdk_4.1__final/xcode_3.2.4_and_ios_sdk_4.1.dmg
这给了我一个名为login?appIdKey=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&path=%2F%2Fios%2Fdownload.action?path=%2Fios%2Fios_sdk_4.1__final%2Fxcode_3.2.4_and_ios_sdk_4.1.dmg
文件,它只是包含了开发者网站的登录表单的HTML页面。
使用curl:
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" \
https://developer.apple.com/ios/download.action?path=/ios/ios_sdk_4.1__final/xcode_3.2.4_and_ios_sdk_4.1.dmg
这基本上打印同样的事情的wget(减去HTML)。
我想说它与sessionToken不在cookie中有关,但正如我之前所说的我不确定。我甚至尝试从我的浏览器中导出cookie,并按照我在下面链接的博客文章中的说明以及我在搜索帮助时发现的其他几个网站中的说明进行操作。
我一定在做错事,除非苹果自10月10日起改变了一些东西because this guy seems to be to do something right。
在此先感谢!
谢谢,petert!省去了我自己做的麻烦。 – Joe 2011-03-16 14:12:54
Yeh,作品一种享受 - 现在很容易设置它在夜间下载;使用cron。 – petert 2011-03-16 16:34:12