码迷,mamicode.com
首页 > 其他好文 > 详细

OpenWRT镜像爬虫搭建本地源

时间:2016-09-03 16:40:31      阅读:437      评论:0      收藏:0      [点我收藏+]

标签:

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

 

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

#!/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镜像爬虫搭建本地源

标签:

原文地址:http://www.cnblogs.com/sohobloo/p/5837313.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!