下载 https://github.com/android 上的全部源代码

从 https://android.googlesource.com/ 上弄源代码下来真是不容易,不但得用 vpn,repo 还得半天。github 的速度就快多了,关键是不用 vpn,随时可以下载。而且 github 还可以直接下载 zip 包,那速度可不是 repo 能比的。下面写了个代码批量下载 zip 包:


[python] view plain copy 在CODE上查看代码片 派生到我的代码片
  1. #coding:cp936  
  2. import re, requests  
  3.   
  4. download_path = '.' # 压缩包下载后的存放位置  
  5. tag = 'android-4.1.2_r2.1' # 分支或标签的名称,如果是主版本就写 master  
  6.   
  7. base_url = 'https://github.com/android'  
  8. archive_url = 'https://github.com/android/%s/archive/%s.zip'  
  9. pagination_re = '<a href="/android\?page=.*?">(.*?)</a>'  
  10. repo_re = '<a href="/android/.*?" itemprop="name codeRepository">(.*?)</a>'  
  11. page_count = 1  
  12. repo_items = []  
  13.   
  14. session = requests.Session()  
  15. session.headers.update({  
  16.     'User-Agent''Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 (.NET CLR 3.5.30729)',  
  17. })  
  18.   
  19. html = session.get(base_url).text  
  20. page_result = re.findall(pagination_re, html, re.S)  
  21. if page_result != []:  
  22.     page_count = int(page_result[-2])  
  23.   
  24. repo_result = re.findall(repo_re, html, re.S)  
  25. if repo_result != []:  
  26.     repo_items += repo_result  
  27.   
  28. repo_items = map(lambda x: x.strip(), repo_items)  
  29.       
  30. if page_count > 1:  
  31.     current_page = 2  
  32.     while current_page <= page_count:  
  33.         html = session.get(base_url + "/?page=%d" % current_page).text  
  34.         repo_result = re.findall(repo_re, html, re.S)  
  35.         if repo_result != []:  
  36.             repo_items = repo_items + repo_result  
  37.         current_page += 1  

运行完后,会生成一个 bat 文件,里面是用 wget 来下载的,结果如下。运行 bat 等待下载完成就行了。


[plain] view plain copy 在CODE上查看代码片 派生到我的代码片
  1. wget "https://github.com/android/platform_frameworks_base/archive/android-4.1.2_r2.1.zip" -c --output-document=".\platform_frameworks_base.zip" --no-check-certificate  
  2. wget "https://github.com/android/kernel_common/archive/android-4.1.2_r2.1.zip" -c --output-document=".\kernel_common.zip" --no-check-certificate 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值