import requests
import re
import os.path #取得文件名和内容对应字典
def getCode(url):
pattern=re.compile(r'<h\d>([^<]+)?</h\d>\n*<pre><code>[^<]*</code>{1}?',re.S)
dic={}
r=requests.get(url)
if r.status_code==200:
for g in re.finditer(pattern,r.text):
dic[g.group(1)]=g.group(0)
return dic #输出到文件中
def saveFile(saveDir,dic):
if not os.path.isdir(saveDir):
os.makedirs(saveDir)
for key in dic:
print key,dic[key]
#
outPath=saveDir
fileName=key
rIndex=key.rfind("/")
if rIndex!=-1:
outPath=outPath+"\\"+key[:rIndex]
fileName=key[rIndex+1:]
if not os.path.isdir(outPath):
os.makedirs(outPath)
outFile=open(outPath+"\\"+fileName,'w')
beginIndex=dic[key].find("<code>")
endIndex=dic[key].find("</code>")
if beginIndex==-1 or endIndex==-1:
print "<code> have not"
return
subs=dic[key][beginIndex+6:endIndex]
outFile.write(subs)
outFile.close() url1='http://webpy.org/skeleton/0.3'
url2='http://webpy.org/src/blog/0.3'
url3='http://webpy.org/src/todo-list/0.3'
url4='http://webpy.org/src/wiki/0.3' urls=(url1,url2,url3,url4) for url in urls:
#取得文件名和内容对应字典
dic=getCode(url)
#相对目录不变
proPath=url.replace("http://","\\").replace("/","\\")
#保存根目录设定在【f:\pyworkspace】下
saveFile(r'f:\pyworkspace'+proPath,dic)

获取web.py上面的示例code的更多相关文章

  1. python获取动态网站上面的动态加载的数据(初级)

    我们在处理一些网站数据的时候,有时候我们需要的数据很多都是动态加载的,而不都是静态的,以下以一个实例来介绍简单的获取动态数据,首先申明本人小白,还在学习python中,这个方法还是比较笨拙的,但是对于 ...

  2. web.py上传文件并解压

    有个需求是从php端上传zip文件到python端并且解压到指定目录,以下是解决方法 1.python端,使用的web.py def POST(self): post_data = web.input ...

  3. python获取动态网站上面的动态加载的数据(selenium+Firefox)

    最近突然想到以前爬取百度学术上的参考文献,大家可以看一下以前我的写的博客:http://www.cnblogs.com/ybf-yyj/p/7351493.html,但是如果利用这个方法,太痛苦了,需 ...

  4. 简单而直接的Python web 框架:web.py

    web.py 是一个Python 的web 框架,它简单而且功能强大.web.py 是公开的,无论用于什么用途都是没有限制的. 先让大家感受一下web.py 的简单而强大: import web ur ...

  5. 如何批量清除128组节点db上面的过期的binlog,释放磁盘空间。(转)

    如果10台以内的db的话,自己手动ssh进去,clean就足以,但是上百台呢,就要写脚本了.大概思路:在 一台db跳转机上面, 写一个脚本,访问slave,远程获取正在复制的master上面的binl ...

  6. 清理:db上面的过期的binlog,释放磁盘空间。 (转)

    如果10台以内的db的话,自己手动ssh进去,clean就足以,但是上百台呢,就要写脚本了.大概思路:在 一台db跳转机上面, 写一个脚本,访问slave,远程获取正在复制的master上面的binl ...

  7. Aaron Swartz Rewriting Reddit中关于web.py的创建思路

    这天才少年居然自杀了,哎 原文点这 So how should things work? The first principle is that code should be clear and si ...

  8. jQuery Ajax使用FormData上传文件和其他数据,后端web.py获取

    参考博文: 通过jQuery Ajax使用FormData对象上传文件 方法一:使用<form>表单初始化FormData对象方式上传文件 前端(JQuery): <form enc ...

  9. context.getResourceAsStream获取的是部署在服务器上面的文件位置 而不是我们本地的工程位置 意思是说获取的都是web下面的文件位置

    context.getResourceAsStream获取的是部署在服务器上面的文件位置 而不是我们本地的工程位置 意思是说获取的都是web下面的文件位置

随机推荐

  1. Integer to Roman——相当于查表法

    Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 t ...

  2. Redis安装+密码认证

    redis: 安装: $ wget http://download.redis.io/releases/redis-3.2.7.tar.gz $ tar xzf redis-3.2.7.tar.gz ...

  3. JAVA版数据库主键ID生成器

    import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; public clas ...

  4. highcharts高级画图柱状图和折线图

    折线图一枚 $("#z_line").highcharts({ chart: { type: 'line' }, credits: { enabled: false // 禁用版权 ...

  5. LoadRunner脚本回放日志中的Warning信息

    关注LoadRunner脚本回放日志中的Warning信息   最近在与大家的讨论中发现了LoadRunner的很多问题,出于解决问题的出发点,我也就相关自己不理解的问题在Google中搜索了一番,并 ...

  6. Nginx+PHP “No input file specified”错误的解决办法

    配置官网商城php网站时候,界面报错“No input file specified” 原理: 任何对.php文件的请求,都简单地交给php-cgi去处理,但没有验证该php文件是否存在. PHP文件 ...

  7. MySQL的数据引擎讲解

    一.MySQL的数据引擎讲解 在MySQL数据库中,常用的引擎主要就是2个:Innodb和MyIASM. 1.简单介绍这两种引擎,以及该如何去选择. a.Innodb引擎,Innodb引擎提供了对数据 ...

  8. 7.spark Streaming 技术内幕 : 从DSteam到RDD全过程解析

    原创文章,转载请注明:转载自 听风居士博客(http://www.cnblogs.com/zhouyf/)   上篇博客讨论了Spark Streaming 程序动态生成Job的过程,并留下一个疑问: ...

  9. Ubuntu 16.04 LTS安装Docker并使用加速器

    参考优酷:http://v.youku.com/v_show/id_XMTkxOTYwODcxNg==.html?spm=a2h0k.8191407.0.0&from=s1.8-1-1.2 首 ...

  10. [lampp] 不能通过互联网连接数据库 MySQL is not accessable via network

    LAMPP安装目录下的/etc/my.cnf文件注释掉skip-networking #skip-networking#skip-networking