精华内容
下载资源
问答
  • QTP经验总结

    2018-05-02 13:03:53
    QTP经验总结QTP经验总结QTP经验总结QTP经验总结QTP经验总结
  • 指针经验总结 指针经验总结 指针经验总结 指针经验总结 指针经验总结 指针经验总结 指针经验总结
  • C++学习经验总结,C++学习经验总结C++学习经验总结C++学习经验总结
  • 网络优化经验总结 网络优化经验总结 网络优化经验总结 网络优化经验总结
  • PID 调节 经验总结 PID 调节 经验总结
  • FPGA经验总结

    2012-02-17 21:20:15
    FPGA经验总结FPGA经验总结FPGA经验总结
  • 网站推广经验总结 网站推广经验总结 网站推广经验总结
  • 《[教学经验总结范文]学校管理经验总结范文》.doc
  • jquery经验总结

    2011-10-18 23:24:40
    jquery经验总结jquery经验总结
  • ORACLE应用经验总结

    2019-01-17 16:20:34
    ORACLE应用经验总结,是常年工作在oracle第一线资深人士总结文档
  • 奥美创意经验总结

    2020-12-23 22:53:27
    工欲善其事必先利其器,奥美创意经验总结就是你学习这一行业最好的工具,希望奥美创意经验总结不会让你失...该文档为奥美创意经验总结,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看
  • TeeChart经验总结

    2013-11-04 20:22:57
    TeeChart经验总结 1-15 delphi下
  • delphi经验总结delphi总结 delphi经验总结delphi总结
  • ABB变频器现场经验总结.pdf 介绍了关于ABB变频器现场经验总结的详细说明,提供ABB 变频器的技术资料的下载。
  • java 经验总结

    2011-09-07 20:05:34
    java 经验总结 java 经验总结 java 经验总结 java 经验总结
  • 指针经验总结

    2012-02-29 14:40:42
    指针经验总结,教你如何使用指针,以及对指针使用的总结心得体会
  • Linux 内核学习经验总结,Linux 内核学习经验总结,Linux 内核学习经验总结
  • FPGA经验总结 FPGA

    2010-03-17 17:20:04
    FPGA经验总结 FPGA经验总结 FPGA经验总结
  • MyEclipse使用经验总结

    2011-08-30 16:43:54
    MyEclipse使用经验总结MyEclipse使用经验总结
  • sql练习总结sql经验总结 sql练习总结sql经验总结
  • 多年的软件测试经验总结,适合新手们快速入道多年的软件测试经验总结,适合新手们快速入道多年的软件测试经验总结,适合新手们快速入道
  • 项目经验总结

    千次阅读 2017-07-31 10:59:41
    项目经验总结

    前言:
    目前在做的一个项目差不多接近尾声了,现在来总结一下在做这个项目的过程中遇到的一些问题以及总结一些经验供以后的工作学习和借鉴。
    正文:
    首先来简单地介绍一下项目吧,其实,这个项目的功能很简单,就是数据的获取以及展示。首先,这个项目分为服务端和APP端,服务端主要就是从数据库获取数据,APP端就是从服务端请求数据,并展现在页面上。然后,服务端主要是用SSH框架编写的,APP端主要就是android端。接下来,就是我在做这个项目的过程中遇到的一些坑以及自己的一些解决方法。
    项目的那些坑:
    坑一:我一开始是做Java Web开发的,对于Android的知识可谓是少之又少,仅有的一些项目经验就是在毕业设计的时候,接触到的一点android。虽说这两种技术都与java有关系,但是两者的思想以及编程上面还是有很多不同之处的,这些就导致了我在开发android端的时候,走了很多弯路。例如,APP端需要频繁的向服务端请求数据,我就使用了java的httpClient来做一个链接,但是这种原生的网络请求往往是有很多弊端的,也是经不起考验的,一般项目中都会引用第三方成熟的框架来建立请求。
    坑二:上面也提到过,项目需要不断地发起网络请求,向服务端请求数据。如果,数据库的数据比较小,十几万条这种的,在今日这种4G网络下,还是比较轻松的。但是如果数据是几百万条甚至更多呢?要如何在这么多数据中查询到你需要的数据?还能保证查询的效率?
    坑三:对第三方开源框架的不熟悉。现在开源的东西越来越多,也越来越好用,一个项目中肯定会不可避免地使用到各种各样的第三方框架。这种第三方框架带来的好处很明显,带来的坏处也明显。好处就是你是站在巨人的肩膀上进行的开发,降低了开发的成本,提高开发的效率。坏处就是,因为这个框架不是你编写的,它里面有很多API你并不熟悉,而且,你也不能去维护它。
    解决方案:
    以上说了那几个坑,都是我在项目中思考过的。接下来,就说一下,怎么来填坑吧。
    填坑一:武器——心态
    坑一纯属是我自己用来抱怨的。一开始听到要做android的时候,我整个人是不好的。即使觉得很坑爹,有时间抱怨还不如抓紧时间去填补知识。我个人是比较提倡在做项目中学习的,因为只有你真的接触到了项目,你才知道你需要的是什么技术,你才能对症下药,有的放矢。在工作的时候,往往有很多项目都是我们不擅长,这个时候,除了调整心态或者炒老板鱿鱼,我没想到其他的方法了。
    填坑二:武器——优化SQL查询语句以及对数据库的表结构进行优化
    由于项目使用的是Mysql数据库,Mysql的特点是体积小,查询快,开源,核心内核是多线程的,支持千万条数据的存储。在实际项目中,设备每5秒中就会上传一次数据到Mysql数据库的一张表中,一天的数据量就有17280条数据,一个月就有50多万条数据。随着时间的增长,数据库的数据量就会越来越庞大,导致查询速度的缓慢。为了提高查询速度,楼主也找了好多方法( MySQL数据库如何解决大数据量存储问题:http://blog.csdn.net/likika2012/article/details/38816037),首先是建立索引,把能优化的SQL语句都优化,由于把大量的数据都存储在一张表中不合理,因此还做了根据时间做了分表操作。但是,感觉这些并不能从实际上解决问题,应该也是楼主的能力经验有限,目前能做的只有这些。
    坑三:武器——学习,学习,学习,重要的事情要说三遍
    项目使用开源项目是不可避免的了,你只有不断学习别人的源码,理解别人的设计思想,提高自己的编码水平,除此之外,别无捷径。程序员这个行业其实更新换代很快的,想要立于不败之地,除了学习,还是学习,多更行业的大牛交流,多谢谢博客,多思考,多动手吧。
    最后
    通过这个项目,其实自己也学到了很多,起码从一个java小白开始慢慢转变成了一个java菜鸟。路漫漫其修远兮,吾将上下而求索~

    展开全文
  • 为了总结自己踩过的坑,给后面要考的同学们提供一些微薄的帮助,遂作此文。 考场经验 一. 注意,考试的运行时的黑框,是不能使用Crtl+V进行粘贴的,但这不代表考试不能进行复制粘贴,PAT考试系统里的代码...

    emmmmmmm  总算是考了个满分,不用以后再交PAT考场一日游入场费了T ^ T
    第一次在去年秋天,被第一题狼人杀给干掉了〒▽〒,最后得了81分,第二次就是今年春季,侥幸满分通过了= =
    为了总结自己踩过的坑,给后面要考的同学们提供一些微薄的帮助,遂作此文。

    考场经验

    一. 

    注意,考试的运行时的黑框,是不能使用Crtl+V进行粘贴的,但这不代表考试不能进行复制粘贴,PAT考试系统里的代码需要用Ctrl+C进行复制(右键不行),黑框的粘贴功能,是在黑框上方边界右键,然后选择编辑里面的粘贴进行,具体如下图~

    在这个上面右键
    就会出现下面的情况(没法截图,只能拍照了= =)

    然后就可以愉快的粘贴啦~
    当然还有另一种操作可以一劳永逸
    依旧在菜单栏右键,单击属性

    然后把 快速编辑模式 这一项前边的勾给打上,

    然后,在黑框里面,选中一块文字右键就是复制,不选中文字右键就是粘贴,而且持续有效(即每次打开运行黑框都可以使用~)
     

    二. 

    注意编译器问题,如果有VS,尽量不要用DEV C++,这是我第一次考试时遇到的坑,就是DEV C++在考试的时候竟然不能Debug,太坑了,第二次用的VS2013就可以,至于code block,我没怎么用过,暂时不清楚= =

    三.

    如果担心环境问题,去官网上面找每个考点的联系人以及联系方式,问清楚到底提供哪些编译器,因为我今年去的考点,明明PAT上面考点信息说有VS2005和VS2008,然而去了只有VS2013,就很尴尬,不同的环境确实会出现一些以前没有过的问题,比如VS2013就不能用scanf而要用scanf_s代替而vs2008上就不会出现,所以,如果想核实环境的,最好问一下联系人,他们也会很热心解答的~

    四.

    考试需要带的东西,草稿纸会发,但是笔要自己带(不会发笔的- -),身份证,准考证,还有人,其他的就米啥要带的啦

    五.

    注意考试不要打开浏览器,如果不小心误碰,立刻关掉,如果打开浏览器超过10秒,系统会立即将你驱逐的!(也就是考试提前结束了......),然而PAT每场考试都喜欢搞一题左右的来自维基百科的链接陷阱,千万别好奇瞎点进去!

    六.

     考试的代码,是可以存储的,(一般存储在E盘,或者老师指定的代码存储盘,以防止系统崩溃无法还原),考试结束当然也可以用U盘拷走,当然你也可以不拷,因为每次考试结束,每个考生都可以在PTA系统里绑定考号,直接查看到自己提交的代码以及排名,具体操作如下:
        参加本场考试的考生,请先在“拼题A”系统注册个人账号,登录后点击用户名进入“个人中心”,将个人账号与考试账号进行绑定,方法如下:

        1. 在“绑定学号”栏目下选择“学校”为“PAT联盟”;
        2. 在姓名栏填入自己的姓名;
        3. 在学号栏填入自己的准考证号;
        4. 在验证码一栏根据自己的考试级别填入下列数字:
            顶级:xxxxxx
            甲级:xxxxxx
            乙级:xxxxxx
        5. 点击“绑定”。再进入系统应可看到本场考试的试题,并找到自己的提交代码。
        流程搬运自陈越姥姥的微博,这里的XXXXXX每场考试都不一样,注意留心姥姥的微博,每次考试结束都会发的。
        点击PTA系统左侧的题目集,在我的题集里面,就会有一个PAT 201X年X季考试 字样的一个题目集,点进去就能看到自己提交的代码啦~

    七.

    其实,AC和代码完全正确,是两个概念,如果你能确定你未通过的点的具体输入与输出,就可以进行特判,这样也能AC,只不过有点倒巧,但是,谁又说倒巧不也是一种能力呢?这只是一个例子,真正做题时还是要老老实实的做,情况紧急而且自己恰好又知道怎么倒巧的时候,再使用这种方法,技巧还有很多,比如利用while(条件)结合二分法进行测数据的等等,这个我就不多说啦,感兴趣的请自行百度~(评论区有人要这个技巧,我知道的也不多,自己整理了一下原来浙大群里的晴神讲解的机试技巧,在我的资源里,感兴趣的可以自行下载,积分是系统自己设定的我没法更改= =)

    八.

    考试其实入场之后,就可以开始了,这个不是统一时间开始的,而是看你点开始考试,然后系统进行倒计时的,倒计时结束,就不能再提交了,所以我推测,大概考试是一个时间段,大约1点到4点半,在考试时间内开始都可以,不过估计4点半应该会强制结束,除非考场有特殊情况发生,打印成绩大约是在5点之后,不出意外的话。
    每一题都提交完成后,可以选择提前结束考试,然后就可看到分数以及排名,当然,也可以选择放在那里不动,等时间结束即可,一定要确定自己每一题都提交成功了,不确定的话,就多提交几次,虽然可能会影响排名或者面试?,但是比自己做对了没有分要舒服。

    九.

    考试时的状态十分重要,我觉得其实应试都是这样,不一定能发挥自己的真实实力,但是这个机制我们无法改变,所以,只能尽可能让自己状态达到最佳,因为1:30开始,所以,尽量在之前休息一下大脑,调整到最佳的状态,才能更好的应对考试。

    十.

    做题目的方法应该是:先认真仔细的读题,理解题目每一句话的意思,将所有的关键信息转换为自己可以理解的符号记在草稿纸上(以防止遗忘导致反复读题,英文毕竟不如中文来得快),题目里的每一句话都有其存在的意义,特别要注意加黑字体,以及有的题目还会在输出样例后写一些话,必须仔细研读,然后想清楚怎么做,再开始编程,这样才能事半功倍,比想了一半就去实现最后发现思路错了要好的多。今年的题目就充分的体现了这一思想,一定要认真审题!

    十一.

    关于一些模板性的算法要不要去记忆的问题,当然是需要记忆的,毕竟考试时间有限,你还在推导基础算法结构,别人都直接AC做下一题了,万一题目再难一些,做不做得完都不知道= = ,所以,像DFS,BFS,Dijkstra算法, 树的各种遍历以及建树方法,AVL树,并查集等等等......(就不一一列举了),这些都是需要记忆的,也不用一次就记住,遇到没记清的算法,自己先想着写,能写多少写多少,实在写不出来再看书,这样加深记忆,多次重复,就记住了~

    十二.

    PAT的赛制和ACM类似,没有罚时,而且实时反馈提交代码的运行结果,考试用的OJ和PAT官网里的刷题OJ很相似,直接在官网OJ进行练习就可以了~传送门PAT官方网站(这里可以进行,考试报名,考点查询,以及真题练习)

     

    学习经验

    这里只做个人见解,请选择性接受,因为每一场考试都不一样,不具有复制性。

    一.

    尽量用C++,C就不要用了(没有STL会很痛苦),python也不要用了(超时一时爽,一直超时一直爽= =),java不清楚= =,反正C++不容易超时,而且每个考点都支持,推荐使用~

    二.

    指导书,还是推荐晴神的算法笔记呐~具体名字《算法笔记》(作者:胡凡 曾磊),讲解很详细,虽然有的题目代码有些问题会导致某个测试点无法通过(可能是因为PAT判题数据更新的问题),但是不影响学习~
    至于代码方面晴神有配套的《算法笔记 上机训练实战指南》,但是到A1107之后的就没有了,我的博客有,传送门——PAT甲级题目索引(题目+解析+AC代码)PAT乙级题目索引(题目+解析+AC代码),另外,柳神的博客也非常好,讲的十分详细,可以借鉴一下大神的解题思维~
    这里仅仅是推荐,没有任何打广告的成分,只是我自己看的是这两个而已,当然每一题在网上搜索都有一堆题解,看个人喜好啦。

    三.

    请不要刷codeup里面的题目!!!,因为里面的题目是对应章节选择的(有的很难,有的很简单,不适合训练),但是,考试用不到= =,(实在想刷,我等等贴出来我的codeup所有的代码及解析,代码及解析已经整理完成,传送门~~~codeup《算法笔记》题目索引(题目+解析+代码))对,作为一个把所有算法笔记上推荐的codeup练习题刷完的人,我很负责任的告诉你,有些题真的很坑= =、、、直接刷PAT里面的题目就行了,还有算法笔记上也不是每一章每一节都要看都要弄懂,这里给出不需要看的章节,(再次强调,请选择性接受,我只能说PAT甲乙级目前为止没有考到以后也大概率不会考到,真的考到了请不要找我0.0):
        4.7-4.7.3 随机选择算法。(后台数据不太可能随机,而且也没考到过)
        5.7 扩展欧几里得算法。(千万不要看,看完以后你会怀疑人生的,而且也不会考)
        5.8 组合数。(没考过,但是可以看一看,不难)
        9.8 哈弗曼树。(没考过)
        10.4-10.4.2~10.4.3 Bellman-Ford算法和SPFA算法以及Floyd算法(都没考过= =,但是不代表以后不会考,出现负环就会考了)
        10.5 最小生成树(没考过)
        10.6 拓扑排序(没考过,考过一题拓扑排序PAT 甲级 1146 Topological Order,但是不需要用这里面讲的复杂方法实现,而只是一个简单的模拟)
        10.7 关键路径(鄙人觉得很难考到,大概是有生之年系列了)
        11.6 DAG最长路(拓扑排序都没考,哪轮得着你??? ̄△ ̄)
        12.2 KMP算法(没考过,代码还很饶人,估计也是有生之年?)

        (关于第十一章动态规划专题,PAT前几年考过,最近几年就没有考过了,所以,如果实在不懂,不用太钻牛角尖,大概率不太会考吧0.0)
        2020.9.8更新:
        这里的不要看章节可能已经不是太准确了,看评论区也有小伙伴说今年秋季已经开始考DAG以及拓扑排序了,不好说关键路径以及 KMP会不会考,所以这个列表仅作历史记录,准备还是要更充分一些,实在没有时间再做取舍。

    四.

    刷题目尽量自己想,使劲想,自己动手实现,明知道自己写不对,也要自己写,编程最重要的就是要自己动手,刚看完题目就看答案的肯定记不住,而且自己的能力并没有得到实质性的提高,只有在自己通过多次的尝试对题目有了充分的认识之后,这时候再看指导才能有一种豁然开朗醍醐灌顶的畅快,并且记忆的也最深刻。

    五.

    做题其实有两种方式,一种是追求代码简洁方便,另一种是追求极致的运行速度,其实后一种更能学到东西,但是,前一种更适合PAT考试,如果你追求后一种,请不要忘了对前一种的训练,(比如使用读入输出优化,利用数组进行各种操作而不使用STL,这都属于追求速度,STL会慢一些,但是,它短啊!写得快啊!),毕竟,PAT考试考的是你能不能在有限的时间内AC,而不是你AC代码的运行速度有多快,不能为了追求速度而忘记了时间的消耗。可以平时追求速度,考试追求通过~~

    六.

    好像真没啥写的了,就写一些个人感悟吧, 本人二战浙大(当然很多人考PAT都是为了浙大嘛。。),但不幸与线又差了那么几分,大佬太多,自己应试能力太弱,这。。。。都是借口吧,关键还是自己不是十分努力的去学习,真的不能完全的投入兴趣,因为本身就不喜欢学习,所以,还是找准自己的定位,弄清楚自己到底真的想要什么,不要盲目跟风的报浙大,(不盲目的童鞋请无视= =,当然不报浙大也可以考PAT~)我觉得研究生不应该是为了就业(当然我们是基于计算机这个高薪行业的角度),兴趣最重要,能学到自己想学到的知识,结交与自己志趣相投的人,提升自己的能力,开阔自己的视野,为自己热爱的领域做出微薄或者巨大的贡献,我觉得这才是研究生的意义所在吧,但是,漫长的是努力,成败只在一瞬间,如今的我们,只能为了那一瞬的光影,坚持不懈的继续在黑暗中前行。共同加油!

    后记

    调剂系统开的第二天,目前已经顺利上岸上科大,选择了自己喜欢的老师以及喜欢的研究方向,虽然没能如愿浙大,但是我已经很知足了,我觉得研究生除了要有一个好的学习平台,剩下的还是要靠自己,还是再三劝告各位大佬以及萌新,选择>>>>努力,请认真评估自己的水平,理性报考。失败经验贴已写,传送门二战浙大CS失败的一些经验

    还有什么不懂的或者我没有说到的请评论告诉我,我会持续增加滴~
    觉得还不错的点个赞支持一下~~

    展开全文
  • FIREBIRD使用经验总结

    2010-07-01 13:21:36
    FIREBIRD使用经验总结,FIREBIRD使用经验总结
  • EMC设计经验总结

    2014-05-13 14:23:28
    EMC设计经验总结,很好的总结,EMC EMC
  • BeautifulSoup 使用经验总结

    万次阅读 2018-09-30 17:20:29
    BeautifulSoup 使用经验总结 文章目录BeautifulSoup 使用经验总结概述安装开始使用经验总结节点对象、名称、属性节点的文本内容子节点父节点兄弟节点搜索节点使用正则表达式匹配标签名使用属性搜索使用CSS搜索使用...

    BeautifulSoup 使用经验总结

    概述

    处理数据,总要面对 HTML 和 XML 文档。BeautifulSoup 是一个可以从 HTML 或 XML 中提取数据的 Python 库,功能强大、使用便捷,诚为朴实有华、人见人爱的数据处理工具。

    安装

    自从有了 pip 这个神器,安装就不再是问题了。BeautifulSoup 支持 Python 标准库中的 HTML 解析器,也支持其他解析器。我建议使用更牛叉的第三方解析器 lxml——我曾经用它处理过单个文件几百兆字节的xml数据,反应神速,毫无迟滞感。当然,使用系统已有的解析器,除了速度和效率,基本也不会有啥问题。

    $ pip install beautifulsoup4
    $ pip install lxml
    

    开始使用

    >>> from bs4 import BeautifulSoup
    >>> soup = BeautifulSoup("<html>data</html>", "html.parser")  # 使用python内置标准库,速度适中,容错性好
    >>> soup = BeautifulSoup("<html>data</html>", "html5lib")     # 以浏览器的方式解析文档,容错性最好
    >>> soup = BeautifulSoup("<html>data</html>", ["lxml-xml"])   # lxml XML 解析器,速度快
    >>> soup = BeautifulSoup("<html>data</html>", "lxml")         # lxml HTML 解析器,速度快,容错性好
    

    如果没有指定解析器,BeautifulSoup 会自动查找使用系统可用的解析器。

    经验总结

    所有的例子,均以下面的html为例。

    html_doc = """
    	<html>
    		<div id="My gift">
    			<p class="intro short-text" align="left">One</p>
    			<p class="intro short-text" align="center">Two</p>
    			<p class="intro short-text" align="right">Three</p>
    		</div>
    		<img class="photo" src="demo.jpg">
    		<div class="photo">
    			<a href="sdysit.com"><img src="logo.png"></a>
    			<p class="subject">山东远思信息科技有限公司</p>
    		</div>
    	</html>
    """
    
    • 文本也是节点,我们称之为文本型节点,比如p标签中的One,Two,Three
    • 某个节点的子节点往往比我们看到的多,因为在那些可见的子节点之外的换行、空格、制表位等,也都是某节点的文本型子节点

    节点对象、名称、属性

    使用lxml解析器生成一个 BeautifulSoup 对象 soup,然后可以使用标签名得到节点对象:

    >>> soup = BeautifulSoup(html_doc, 'lxml')
    >>> tag = soup.html
    >>> tag.name
    'html'
    >>> tag.p.name
    'p'
    

    事实上,我们可以不用在意标签的父级是谁,直接从soup得到节点对象:

    >>> soup.p.name
    'p'
    >>> soup.img['src']
    'demo.jpg'
    >>> soup.img.attrs
    {'class': ['photo'], 'src': 'demo.jpg'}
    >>> soup.p['class']
    ['intro', 'short-text']
    >>> soup.div['id']
    'My gift'
    

    很显然,这样的方式得到的节点,一定是html中第一个同类型的标签。上面的例子还演示了如何取得节点对象的所有的属性和指定属性。当class属性有多个值时,返回的是一个列表,而id属性不承认多值。

    节点的文本内容

    取得一个节点的文本内容,有很多种方法,比如:

    >>> soup.p.text
    'One'
    >>> soup.p.getText()
    'One'
    >>> soup.p.get_text()
    'One'
    >>> soup.p.string
    'One'
    >>> type(soup.p.string)
    <class 'bs4.element.NavigableString'>
    

    当一个节点只有文本型子节点的时候,前三种方法的效果是完全一致的,第四种方法看上去差不多,但返回的类型是NavigableString(可遍历的字符串)。

    当节点包括元素型子节点的时候,输出的结果可能已经不是我们需要的了。此时,可以使用 .strings 或者 .stripped_strings(去掉空行和多余的空格) 得到一个迭代器,遍历即可得到我们想要的内容。

    >>> soup.div.text
    '\nOne\nTwo\nThree\n'
    >>> soup.html.text
    '\n\nOne\nTwo\nThree\n\n\n\n\n山东远思信息科技有限公司\n\n'
    >>> for item in soup.div.stripped_strings:
    	print(item)
    	
    One
    Two
    Three
    

    子节点

    .contents, .children,.descendants 都可以取得节点的子节点,但用法各不相同:

    • .contents, .children 只能取得直接子节点,.descendants 则可以递归取得所有子节点
    • .contents 返回的子节点的列表,.children,.descendants 返回的是迭代器

    父节点

    .parent 属性来获取某个元素的父节点:

    >>> soup.p.parent.name
    'div'
    

    .parents 属性可以递归得到元素的所有父辈节点:

    >>> for parent in soup.p.parents:
    	print(parent.name)
    	
    div
    body
    html
    [document]
    

    兄弟节点

    可以使用 .next_sibling 和 .previous_sibling 属性来查询前一个或后一个兄弟节点,但必须注意,除了可见的兄弟节点,还可能存在换行、空格、制表位等文本型的兄弟节点混杂其中。

    可以使用 .next_siblings 和 .previous_siblings 属性取得当前节点的前面或后面的兄弟节点的迭代输出。

    搜索节点

    一般使用 find() 和 find_all() 搜索符合条件的第一个节点和全部节点的列表。

    >>> soup.find('p')
    <p align="left" class="intro short-text">One</p>
    >>> soup.find_all('img')
    [<img class="photo" src="demo.jpg"/>, <img src="logo.png"/>]
    

    使用正则表达式匹配标签名

    搜索以d开头的标签:

    >>> import re
    >>> for tag in soup.find_all(re.compile("^d")):
    	print(tag.name)
    	
    div
    div
    

    使用属性搜索

    >>> soup.find_all(id='My gift')[0].name # 查找id=My gift的节点
    'div'
    >>> soup.find_all(id=True)[0].name # 查找有id属性的节点
    'div'
    >>> soup.find_all(attrs={"id":"My gift"})[0].name # 使用attrs查找
    'div'
    >>> soup.find_all(attrs={"class":"intro short-text","align":"right"})[0].text # 使用attrs查找
    'Three'
    >>> soup.find_all(attrs={"align":"right"})[0].text # 使用attrs查找
    'Three'
    

    使用CSS搜索

    >>> soup.find_all("p", class_="intro")
    [<p align="left" class="intro short-text">One</p>, <p align="center" class="intro short-text">Two</p>, <p align="right" class="intro short-text">Three</p>]
    >>> soup.find_all("p", class_="intro short-text")
    [<p align="left" class="intro short-text">One</p>, <p align="center" class="intro short-text">Two</p>, <p align="right" class="intro short-text">Three</p>]
    >>> 
    

    使用文本内容搜索

    >>> soup.find_all(string="Two")
    ['Two']
    >>> soup.find_all(string=re.compile("Th"))
    ['Three']
    

    使用函数筛选

    >>> def justdoit(tag):
    	return tag.parent.has_attr('id') and tag['align']=='center'
    
    >>> soup.find_all(justdoit)
    [<p align="center" class="intro short-text">Two</p>]
    
    展开全文
  • 人人农场经验总结

    2012-04-10 17:37:33
    人人农场游戏开发技术经验总结,总结如何优化等
  • LINUX 经验总结

    2009-04-06 21:44:19
    LINUX 经验总结,都是从高手那里得到的一些总结资料,共同学习
  • LotusScript程序开发经验总结LotusScript程序开发经验总结LotusScript程序开发经验总结LotusScript程序开发经验总结LotusScript程序开发经验总结LotusScript程序开发经验总结LotusScript程序开发经验总结LotusScript...
  • Java代码的30条经验总结

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 593,377
精华内容 237,350
关键字:

经验总结