python标准库 下载_下载python标准库--python

1 #coding:utf-8

2 importurllib23 importos,sys4 from BeautifulSoup import BeautifulSoup #For processing HTML

5 from bs4 importBeautifulSoup6 classBookSave():7 '''

8 dir:html文件保存目录 url:index.html目录 static_url:js、css所在目录的上级目录9 distinguish:用来区分相同tag.name dis_key:所需的tag属性 key1:所取tag10 key2:tag属性 key3:tag属性值11 '''

12 def __init__(self,dir,url,static_url,distinguish,dis_key,key1,key2,key3):13 self.dir=dir14 self.url =url15 self.static_url =static_url16 self.distinguish =distinguish17 self.dis_key =dis_key18 self.key1 =key119 self.key2 =key220 self.key3 =key321

22 defAddUrl(self):23 if self.dir != '':24 list = os.listdir(self.dir) #列出目录下的所有文件和目录

25 for line inlist:26 ifos.path.isdir(line):27 continue

28 elifos.path:29 self.JieXiCsss(line)30 self.JieXiJs(line)31

32 defJieXiCsss(self,file):33 filePath =os.path.join(self.dir,file)34 printfilePath35 fp =open(filePath)36 soup =BeautifulSoup(fp)37 head =soup.head38 tags = head.findAll('link')#,{'rel':'stylesheet'}

39 if tags !=[]:40 for item intags:41 try:42 item['href'] = self.static_url + item['href']43 print item['href']44 exceptKeyError:45 continue

46 else:47 printtags,filePath48 self.SaveHtml(soup,filePath)49

50 defJieXiJs(self,file):51 filePath =os.path.join(self.dir,file)52 fp =open(filePath)53 soup =BeautifulSoup(fp)54 head =soup.head55 tags = head.findAll('script')#,{'rel':'stylesheet'}

56 if tags !=[]:57 for item intags:58 try:59 item['src'] = self.static_url + item['src']60 print item['src']61 self.SaveHtml(soup,filePath)62 exceptKeyError:63 continue

64 else:65 printtags,filePath66 self.SaveFile(soup,filePath)67

68 defSaveFile(self,soup,file):69 html =str(soup)70 with open(file,'wb') as code:71 code.write(html)72

73 defIsNullArr(self,Arr):74 if Arr !=[]:75 returnArr76 else:77 print 'array is null'

78

79 defDownLoadHtml(self,arr):80 tags =bs.IsNullArr(arr)81 for item intags:82 liName =item.parent.name83 if any(liName in s for s inself.distinguish):84 continue

85 else:86 htmlUrl = self.url +item[self.dis_key]87 printhtmlUrl88 fileName =os.path.join(self.dir,item[self.dis_key])89 print 'saving:' +htmlUrl90 self.SaveHtml(fileName,htmlUrl)91

92 defSaveHtml(self,fileName,htmlUrl):93 f =urllib2.urlopen(htmlUrl)94 html =f.read()95 with open(fileName,"wb") as code:96 code.write(html)#.decode('utf-8')

97

98 defGetSearchResult(self):99 doc =urllib2.urlopen(self.url)100 soup =BeautifulSoup(doc)101 soup.originalEncoding102 tag =soup.findAll(self.key1,{self.key2:self.key3})103 returntag104

105 defSplitString(self,source,sep):106 return source.strip().split('/')107

108 defCreateDir(self):109 if notos.path.exists(self.dir):110 os.makedirs(os.path.join(self.dir))111 if __name__=='__main__':112 urls = 'http://docs.python.org/2/library/'

113 static_url = 'http://docs.python.org/2/'

114 dirs = 'E:/demo/PythonLib1/'

115 bs = BookSave(dirs,urls,static_url,'p','href','a','class','reference internal')116 bs.CreateDir()117 fileName = os.path.join(dirs,'index.html')118 htmlUrl = urls + 'index.html'

119 bs.SaveHtml(fileName,htmlUrl)120 tags =bs.GetSearchResult()121 #print tags

122 bs.DownLoadHtml(tags)123 bs.AddUrl()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/488424.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

马赛克战——利用人工智能和自主系统来实施决策中心作战

知远战略与防务研究所 沐俭/编译自:美国战略与预算评估中心网站【知远导读】本篇推送编辑节选自美国战略与预算评估中心2020年2月11日发布的同名研究报告,报告由CSBA高级研究员布莱恩克拉克等撰写。报告认为,美军目前这种以一体化、多功能集…

java动态内存分部,如何利用Java实现动态内存分配?

一.实验原理原理:内存以分区为单位,每个分区可由(ID,addr,size,)进行描述class sector{int id -1;//记录作业的编号int addr0;//内存的起始位置int size100;//分配的内存大小}建立两个链表avail和busy。av…

codevs 1283 等差子序列

http://codevs.cn/problem/1283/ 题目描述 Description给一个 1 到 N 的排列{Ai}&#xff0c;询问是否存在 1<p1<p2<p3<p4<p5<…<pLen<N&#xff08;Len>3&#xff09;&#xff0c;使得 Ap1,Ap2,Ap3,…ApLen 是一个等差序列。 输入描述 Input Descr…

postgresql两个列模糊比较_JDBC进阶(一):批处理与获取自增长列的值

一、批处理假如要插入一万条记录到数据表中&#xff0c;那么使用普通的方法就要执行一万次插入操作&#xff0c;这样会频繁打开和关闭数据库连接&#xff0c;导致执行速度变慢。因此可以使用批处理机制将多条语句一次性提交给数据库批量处理。批处理的相关API&#xff1a;void …

深度解读后疫情时代下,零售行业的趋势及技术前瞻

来源&#xff1a;苏宁零售技术研究院作者&#xff1a;王俊杰、罗海棠博士、郭永慧、池曙强、张绿漪博士新冠状病毒肺炎疫情发展严峻&#xff0c;短时间内席卷全国。民众在政府的号召下选择了尽量不出行&#xff0c;餐饮、旅游、线下零售等行业面临严峻考验。但同时&#xff0c;…

php 两个数组中不同的元素,PHP实现查询两个数组中不同元素的方法

这篇文章主要介绍了PHP实现查询两个数组中不同元素的方法,涉及PHP数组差集运算与数组合并的相关技巧,需要的朋友可以参考下本文实例讲述了PHP实现查询两个数组中不同元素的方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;<?php $a array("max_allow_dia…

JAVA-配置path环境

配置path环境变量变的目的是什么&#xff1f; 控制台可以在任意的路径下都可以找到java的开发工具。 为了说明几个JDK环境变量的作用&#xff0c;这里先给出环境变量的定义 环境变量&#xff1a; 环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数&#xff0c;比…

c井语言python_【一点资讯】C井风靡一时的编程语言和现在最火编程语言Python!谁更强? www.yidianzixun.com...

步入正题&#xff1a; 欢迎提出更简单或者效率更高的方法基础系列&#xff1a;(这边重点说说Python&#xff0c;上次讲过的东西我就一笔带过了)1.输出类型转换Python写法&#xff1a;2.字符串拼接 拼接输出方式python&#xff1a;NetCore这次为了更加形象对比&#xff0c;一句一…

add php support,wordpress函数add_post_type_support()用法示例

add_post_type_support( string $post_type, string|array $feature )Register support of certain features for a post type.描述All core features are directly associated with a functional area of the edit screen, such as the editor or a meta box. Features includ…

170页PPT入门深度强化学习! 汪荣贵 图灵人工智能 昨天

转自&#xff1a;中国图象图形学报什么是强化学习&#xff1f;和其他学习方法相比&#xff0c;有何不同与特色&#xff1f;深度学习如何与强化学习结合&#xff1f;并各取所长&#xff1f;深度强化学习会成为未来引领智能计算的方法吗&#xff1f;深度强化学习将强化学习和深度…

matlab 文件路径问题

1. fullfile&#xff1a;路径补全 f fullfile(filepart1,...,filepartN) 显然可变参数之间填充的路径分隔符&#xff08;path separator&#xff09;&#xff0c;会根据操作系统而变化&#xff1a; windows&#xff1a;/Linux&#xff1a;\2. fileparts&#xff1a;路径拆分 […

php querystring使用,node.js中的querystring.parse方法使用说明_node.js

方法说明&#xff1a;将字符串转成对象。说白了其实就是把url上带的参数串转成数组对象。(看例子就知道咯)语法&#xff1a;代码如下:querystring.parse(str, [sep], [eq], [options])接收参数&#xff1a;str 欲转换的字符串sep 设置分隔符&#xff0c;默认为 ‘&eq 设置赋…

钟南山院士应邀向欧洲同仁全方位解析新冠肺炎(配中文文字版)

来源&#xff1a;ERS欧洲呼吸学会尊敬的同事们&#xff0c;女士们&#xff0c;先生们&#xff1a;非常荣幸能有机会与您分享我们处理中国境内COVID19感染的相关经验。在这种情况下&#xff0c;我仍然在前线工作&#xff0c;所以准备这个PPT比较匆忙。我只能告诉您一些事实、某些…

powerbi的功能介绍_Power BI性能提升的5大秘密武器

​Power BI无疑已经走了很长一段路&#xff0c;它以其作为自助服务工具的强大根基&#xff0c;易于使用的功能以及在企业领域的持续推动和推动而发展。但是&#xff0c;我们仍然可以发现许多开发和维护Power BI解决方案可以通过应用一些更改而受益匪浅&#xff0c;这些更改将导…

递归推导——猜年龄

一、问题描述 班里转来了一位新同学&#xff0c;他在介绍自己年龄的时候说&#xff1a;“我的年龄的平方是一个三位数&#xff0c;立方是一个四位数&#xff0c;四次方是一个六位数。三次方和四次方正好将0/1/2/3/4/5/6/7/8/9这10个数字全部覆盖。”&#xff0c;那么&#xff0…

matlab画布透明,MATLAB怎么生成带透明对象的矢量图

从很早的版本开始MATLAB就支持对patch、surface等对象设定透明属性&#xff0c;有些示意图也必须使用透明的对象才能充分展示所要表达的含义。对透明对象支持最好的通用图片格式就是.png了&#xff0c;但是png图像并非矢量图形&#xff0c;对于一些需要以矢量图显示的场合并不适…

综述:持续感知系统在边缘计算的应用

来源&#xff1a;《微纳电子与智能制造》随着边缘计算技术的兴起&#xff0c;各种各样的感知系统给人类带来了便捷高效的生活。以日常使用的手机为例&#xff0c;工程师为其置入了各种各样的传感器&#xff0c;并通过运行其上的机器学习算法&#xff0c;部署了很多便捷的功能。…

python如何监控程序运行状态_shell脚本-监控python进程是否在运行及启动python进程...

shell脚本-监控python进程是否在运行&#xff0c;没有则重启jingdong_prices_run.py 并发送邮件告知重启时间,否则不重启不发送邮件定时检测京东商品状态*/5 * * * * sh /data/jingdong-app-spider-py/shell/check-jingdong-goods-run.sh >/store/logs/jingdong-app-spider-…

数据流InputStream转字符串

public static String ScreamToString(InputStream in) throws Exception{//定义一个内存输出流ByteArrayOutputStream out new ByteArrayOutputStream();int len0;byte[] btnew byte[1024];while((lenin.read(bt))!-1){out.write(bt,0,len);}String contentnew String(out.to…

matlab fgoalattain,matlab优化工具箱 | 学步园

1工具箱概述1.1 功能(1)求解无约束条件非线性极小值&#xff1b;(2)求解约束条件下非线性极小值&#xff0c;包括目标逼近问题、极大-极小值问题和半无限极小值问题&#xff1b;(3)求解二次规划和线性规划问题&#xff1b;(4)非线性最小二乘逼近和曲线拟合&#xff1b;(5)非线性…