OpenWRT镜像爬虫搭建本地源

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenWRT镜像爬虫搭建本地源相关的知识,希望对你有一定的参考价值。

网上的爬虫不能用,还是先表达谢意,不过我比较懒不喜欢重复写别人写的教程,只贴出修改,怎么用自己看教程吧。

 

我自己改了一版可以正常爬:

#!/usr/bin/env python
#coding=utf-8
#
# Openwrt Package Grabber
#
# Copyright (C) 2016 sohobloo.me
#

import urllib2
import re
import os
import time

# the url of package list page, end with "/"
baseurl = https://downloads.openwrt.org/snapshots/trunk/ramips/mt7620/packages/

# which directory to save all the packages, end with "/"
time = time.strftime("%Y%m%d%H%M%S", time.localtime())
savedir = ./ + time + /
pattern = r<a href="([^\?].*?)">

def fetch(url, path = ‘‘):
    if not os.path.exists(savedir + path):
        os.makedirs(savedir + path)
    print fetching package list from  + url
    content = urllib2.urlopen(url + path, timeout=15).read()
    items = re.findall(pattern, content)
    cnt = 0
    for item in items:
        if item == ../:
            continue
        elif item.endswith(/):
            fetch(url, path + item)
        else:
            cnt += 1
            print downloading item %d: %(cnt) + path + item
            if os.path.isfile(savedir + path + item):
                print file exists, ignored.
            else:
                rfile = urllib2.urlopen(baseurl + path + item)
                with open(savedir + path + item, "wb") as code:
                    code.write(rfile.read())

fetch(baseurl)

print done!

 

修改内容:

1. 增加了一级当前时间格式的根目录

2. 修改正则,过滤无效的地址(问号开头)

3. 改为递归爬目录结构

 

另外很高兴Python知识终于可以用了,撒花。

 


 

想更新截图失败,博客园看上去是要死了。

 

以上是关于OpenWRT镜像爬虫搭建本地源的主要内容,如果未能解决你的问题,请参考以下文章

Openwrt软路由在Vmware环境的搭建

怎么在ubuntu系统上编译定制openwrt固件

openwrt编译x86镜像

docker学习11-上传本地镜像到镜像仓库

制作斐讯N1的OpenWRT镜像

DOCKER 08:搭建本地镜像仓库 Harbor