获取web.py上面的示例code
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的更多相关文章
- python获取动态网站上面的动态加载的数据(初级)
我们在处理一些网站数据的时候,有时候我们需要的数据很多都是动态加载的,而不都是静态的,以下以一个实例来介绍简单的获取动态数据,首先申明本人小白,还在学习python中,这个方法还是比较笨拙的,但是对于 ...
- web.py上传文件并解压
有个需求是从php端上传zip文件到python端并且解压到指定目录,以下是解决方法 1.python端,使用的web.py def POST(self): post_data = web.input ...
- python获取动态网站上面的动态加载的数据(selenium+Firefox)
最近突然想到以前爬取百度学术上的参考文献,大家可以看一下以前我的写的博客:http://www.cnblogs.com/ybf-yyj/p/7351493.html,但是如果利用这个方法,太痛苦了,需 ...
- 简单而直接的Python web 框架:web.py
web.py 是一个Python 的web 框架,它简单而且功能强大.web.py 是公开的,无论用于什么用途都是没有限制的. 先让大家感受一下web.py 的简单而强大: import web ur ...
- 如何批量清除128组节点db上面的过期的binlog,释放磁盘空间。(转)
如果10台以内的db的话,自己手动ssh进去,clean就足以,但是上百台呢,就要写脚本了.大概思路:在 一台db跳转机上面, 写一个脚本,访问slave,远程获取正在复制的master上面的binl ...
- 清理:db上面的过期的binlog,释放磁盘空间。 (转)
如果10台以内的db的话,自己手动ssh进去,clean就足以,但是上百台呢,就要写脚本了.大概思路:在 一台db跳转机上面, 写一个脚本,访问slave,远程获取正在复制的master上面的binl ...
- Aaron Swartz Rewriting Reddit中关于web.py的创建思路
这天才少年居然自杀了,哎 原文点这 So how should things work? The first principle is that code should be clear and si ...
- jQuery Ajax使用FormData上传文件和其他数据,后端web.py获取
参考博文: 通过jQuery Ajax使用FormData对象上传文件 方法一:使用<form>表单初始化FormData对象方式上传文件 前端(JQuery): <form enc ...
- context.getResourceAsStream获取的是部署在服务器上面的文件位置 而不是我们本地的工程位置 意思是说获取的都是web下面的文件位置
context.getResourceAsStream获取的是部署在服务器上面的文件位置 而不是我们本地的工程位置 意思是说获取的都是web下面的文件位置
随机推荐
- Qt笔记——多线程
这个例子是,点击开始按钮,数字累加,点击停止按钮,数字不动. 1,新建一个类,里面是子线程的内容 #ifndef MYTHREAD_H #define MYTHREAD_H #include < ...
- js表单提交回调函数
在研究表单的时候发现一个有意思的东西——在表单提交的时候如何保证数据全部提交完毕才会清空? 我们常用的<input type="reset" value="重置&q ...
- hdu多校 2
... 后面四个小时都在挂机很难受. 1010 裸的逆序对 //#pragma comment(linker, "/stack:200000000") //#pragma GCC ...
- SpringBoot学习:读取yml和properties文件的内容
一.在SpringBoot实现属性注入: 1).添加pom依赖jar包: <!-- 支持 @ConfigurationProperties 注解 --> <!-- https://m ...
- vs2005 QT4.7.1编译 详细
http://blog.csdn.net/debugconsole/article/details/8230683 网上一搜有QT+2005编译的很多文章,但是都不详细,很多都编不过,特别的在conf ...
- Linux用户密码文件/etc/shadow相关
(1).密码文件 [root@xuexi ~]# head -3 /etc/shadow root:$6$kcgcu794R0VP3fDL$aYN8XUbtWvZ4QQtT2xVW.N2CgE3YLP ...
- poj 1018(dp)
Communication System Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 25653 Accepted: ...
- oracle latch工作原理
latch是一种轻量级用于保护oracle共享内存结构,用户并发操作一致性的串行化锁定机制,如SGA中,各种数据被反复从磁盘读取到内存,又被重新写回到磁盘上,如果有并发用户做相同的事情,oracle必 ...
- noip 2008 传纸条
题目描述 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排做成一个m行n列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了.幸运的是 ...
- BZOJ 2084 [Poi2010]Antisymmetry(manacher)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2084 [题目大意] 对于一个01字符串,如果将这个字符串0和1取反后, 再将整个串反过 ...