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

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

#!/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="([^\?].*?)">'
cnt = 0
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)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镜像爬虫搭建本地源的更多相关文章

  1. CentOS7利用yum缓存搭建本地源

    CentOS7利用yum缓存搭建本地源 环境说明 [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.6.1810 ( ...

  2. CentOS6.5使用createrepo搭建本地源

    本地搭建本地yum源采用的rpm全部来自CentOS-6.5-bin-DVD1&DVD2; 我的是在虚拟机环境安装,先检查我的操作系统版本: 1 2 3 4 [adam@ultraera ~] ...

  3. 第 3 章 镜像 - 020 - 搭建本地 Registry

    Docker Hub 虽然非常方便,但还是有些限制,比如: 需要 internet 连接,而且下载和上传速度慢. 上传到 Docker Hub 的镜像任何人都能够访问,虽然可以用私有 reposito ...

  4. 通过ISO镜像简单搭建本地yum仓库

    本文参考链接:https://segmentfault.com/a/1190000015155966 *有时候在我们本地搭建一些Linux上的程序运行环境或者安装一些软件的时候,难免会遇到需要使用yu ...

  5. iso搭建本地源

    1.挂载iso mount -o loop /root/test.iso /mnt/iso 2.新建repo [local] name=local baseurl=file:///mnt/iso/ e ...

  6. centos 搭建本地YUM源并使用apache共享YUM源

    搭建本地YUM源 1.挂载镜像 2.搭建本地YUM源 删除多余repo文件保留一个就行 本地YUM源就搭建好了 yum repolist 查看yum源 3.使用apache共享YUM源 YUM服务器配 ...

  7. ubuntu下的apt-get内网本地源的搭建

    APT本地源的搭建(可用于局域网apt-get源搭建或者本地源) 本文档介绍使用apt-mirror软件搭建apt本地源 需求:内网开发环境由于其特定原因不能上外网,所以需要本地环境下的内网源来方便开 ...

  8. CentOS6.5 本地源搭建Ceph

    拓扑图 OS: CentOS X86_64,desktop -免密码登录 -修改/etc/sysconfig/network   --hostname -修改/etc/hosts/ -关闭iptabl ...

  9. 在linux上搭建本地yum源

    准备yum仓库的光盘镜像IOS文件: 设置光驱加载本地磁盘的yum仓库的光盘镜像文件: 在linux的命令行输入setup命令打开设置窗口,选择"System Service": ...

随机推荐

  1. Jquery事件

    在JS里加事件  <input type="button" value="测试" onclick="test()"/>跟一个函数 ...

  2. BootStrap_01之全局样式

    1.响应式网页: ①Responsive Web Page:一个可以根据浏览设备的不同,而自动更改布局.图片.文字效果的网页: ②构成:不能固定宽度,必须流式布局:文字和图片大小随容器大小而改变:CS ...

  3. 前端学PHP之MemCache

    × 目录 [1]作用 [2]安装 [3]管理[4]命令 前面的话 Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括 ...

  4. Hadoop学习笔记(1):概念和整体架构

    Hadoop简介和历史 Hadoop架构体系 Master和Slave节点 数据分析面临的问题和Hadoop思想 由于工作原因,必须学习和深入一下Hadoop,特此记录笔记. 什么是hadoop? A ...

  5. Mysql5.6 online ddl

    Innodb性能改善方面: --Users can add indexes and perform standard table alterations while the database rema ...

  6. 在CentOS或RHEL上安装Nux Dextop仓库

    介绍 Nux Dextop是类似CentOS.RHEL.ScientificLinux的第三方RPM仓库(比如:Ardour,Shutter等等).目前,Nux Dextop对CentOS/RHEL ...

  7. C#生成带logo的二维码

    带logo的二维码生成分为两步骤:首先根据输入的内容生成二维码图片,然后读取本地的logo图片,通过图片处理生成带logo的二维码. 生成的二维码效果如下: 下面直接贴出二维码生成类   QRCode ...

  8. asp.net mvc View视图相关

    1.0 @helper语法 @helper语法可以定义可重复使用的帮助器方法: 例如 @helper methodName(type paramName,...){ //todo } 调用:@meth ...

  9. C#——字段和属性

    //我的C#是跟着猛哥(刘铁猛)(算是我的正式老师)<C#语言入门详解>学习的,微信上猛哥也给我讲解了一些不懂得地方,对于我来说简直是一笔巨额财富,难得良师! 在刚开始学习属性这一节时,开 ...

  10. const 与 readonly知多少

    原文地址: http://www.cnblogs.com/royenhome/archive/2010/05/22/1741592.html 尽管你写了很多年的C#的代码,但是可能当别人问到你cons ...