Python爬虫利器:Beautiful Soup的使用(二)

上一篇文章介绍了 BeautifulSoup 的安装以及基本对象类型。

本次介绍使用 bs4 对 HTML 文档树的遍历。

先把本文用到的例子贴上:

str = """


bs4 test

    

bs4 test

ab

"""

文档树的遍历:

文档树的遍历包括以下四部分:

  1. 子节点
  2. 父节点
  3. 兄弟节点
  4. 回退和前进

一、子节点

一个标签可能包含多个字符串或者其他标签,这些标签都属于子节点。要获取子节点,首先需要得到一个 Tag 对象:

获取一个 Tag 对象最简单的方式是用 bs4 对象点上要获取的标签的名字,同时支持链式调用。

bs4 = BeautifulSoup(str, "lxml")
div_tag = bs4.div
ul_tag = bs4.div.ul

.contents :

tag 对象的 .contents 属性可以将 tag 的子节点以列表的方式输出,不包含孙节点:

ul_tag.contents
# ['\n', 
  • PHP
  • , '\n',
  • Python
  • , '\n',
  • Golang
  • , '\n']

    字符串没有 .contents 属性,因为字符串没有子节点。

    .children:

    .children 生成器,可以对 tag 的直接子节点进行循环:

    for child in ul_tag.children:
        print(child)
    # 
  • PHP
  • Python
  • Golang
  • .descendants:

    .descendants 属性可以对所有 tag 的子孙节点进行递归循环:

    for child in ul_tag.descendants:
        print(child)
    

    .string:

    如果 tag 只有一个 NavigableString 类型子节点,那么这个 tag 可以使用 .string 得到子节点。

    title_tag = bs4.title 
    print(title_tag.string)  # bs4 test
    

    如果一个 tag 仅有一个子节点,那么这个 tag 也可以使用 .string 方法,输出结果与当前唯一子节点(也就是 title 节点)的 .string 结果相同。

    head_tag = bs4.head
    print(head_tag.string)  # bs4 test
    

    如果 tag 包含了多个子节点,tag 就无法确定 .string 方法应该调用哪个子节点的内容,所以输出结果是 None:

    print(div_tag.string) # None
    

    .strings 和 stripped_strings:

    对于上边 tag 包含了多个子节点的问题,可以使用 .strings 来循环获取:

    for str in div_tag.strings:
        print(str)
    # PHP   Python   Golang
    

    .stripped_strings 可以去除多余空白内容。

    二、父节点

    .parent:

    .parent 属性来获取某个标签或字符串的父节点,比如:

    print(title_tag.parent) # bs4 test
    h1_tag = bs4.h1
    print(h1_tag.string.parent) # 

    bs4 test

    .parents:

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

    for p in h1_tag.parents:
        print(p.name)
    # body   html   [document]
    

    三、兄弟节点

    首先先看一下例子中的这一行:

    #

    abc

    p_tag = bs4.p print(p_tag.prettify()) #

    # # a # # # b # # # c # #

    都是

    的子节点,所以这三个可以被称为兄弟节点。

    .next_sibling 和 .previous_sibling:

    通过以上两个属性可以查询兄弟节点。

    print(p_tag.i.next_sibling) # c
    print(p_tag.i.previous_sibling) # a
    

    要注意的点:

    在这里没有 previous_sibling 属性,因为它是同级节点中的第一个。相反,没有 next_sibling 属性。

    字符串“a,b,c”不是兄弟节点,因为它们的父节点不同。

    由于我们上边的例子是写的一行,在实际中 .next_sibling 和 .previous_sibling 属性通常是字符串或空白。

    如果示例是如下方式则 .next_sibling 和 .previous_sibling 获取到的是空白。

    a b c

    .next_siblings 和 .previous_siblings:

    .next_siblings 和 .previous_siblings 属性可以对当前节点的兄弟节点迭代输出。

    for sibling in p_tag.span.next_siblings:
        print(repr(sibling))
    #'\n'
    #b
    #'\n'
    #c
    #'\n'
    
    for prev in p_tag.em.previous_siblings:
        print(repr(prev))
    #'\n'
    #b
    #'\n'
    #a
    #'\n'
    

    四、回退和前进

    HTML解析器把文档字符串转换成一连串的事件:
    打开标签 -> 打开标签 -> 打开</code>标签 -> 添加一段字符串 -> 关闭<code><title></code>标签 ...<br> Beautiful Soup提供了重现解析器初始化过程的方法。</p> <p><strong>.next_element 和 .previous_element:</strong></p> <p>.next_element 属性指向解析过程中下一个被解析的对象(字符串或tag)。</p> <p>print(h1_tag.next_element) # bs4 test<br> 因为这个结果是在<code><h1></code>标签被解析之后的解析内容,所以输出字符串。</p> <pre><code>print(h1_tag.next_element.previous_element) # <h1>bs4 test</h1> </code></pre> <p>h1_tag.next_element 输出的是“bs4 test”字符串,因为 .previous_element 指向当前被解析的对象的前一个解析对象,所以这里输出<code><h1>bs4 test</h1>。</code></p> <p><strong>.next_elements 和 .previous_elements:</strong></p> <p>通过 .next_elements 和 .previous_elements 的迭代器可以向前或向后访问文档的解析内容。</p> <pre><code>str2 = "<p><span>a</span><i>b</i><em>c</em></p>" bs42 = BeautifulSoup(str2, "lxml") for element in bs42.p.next_elements: print(element) # <span>a</span> # a # <i>b</i> # b # <em>c</em> # c </code></pre> </article> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1636506635096612864"></div> <script type="text/javascript" src="/views/front/js/chanyan.js"></script> <!-- 文章页-底部 动态广告位 --> <div class="youdao-fixed-ad" id="detail_ad_bottom"></div> </div> <div class="col-md-3"> <div class="row" id="ad"> <!-- 文章页-右侧1 动态广告位 --> <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_1"> </div> </div> <!-- 文章页-右侧2 动态广告位 --> <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_2"></div> </div> <!-- 文章页-右侧3 动态广告位 --> <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_3"></div> </div> </div> </div> </div> </div> </div> <div class="container"> <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(Python爬虫利器:Beautiful Soup的使用(二))</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1892623829889511424.htm" title="r语言 面板数据回归_R语言 之回归分析" target="_blank">r语言 面板数据回归_R语言 之回归分析</a> <span class="text-muted">你的麦克疯</span> <a class="tag" taget="_blank" href="/search/r%E8%AF%AD%E8%A8%80/1.htm">r语言</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E6%9D%BF%E6%95%B0%E6%8D%AE%E5%9B%9E%E5%BD%92/1.htm">面板数据回归</a> <div>回归分析(regressionanalysis)是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。运用十分广泛,下列表格向我们展示了回归的不同类型以及其用途。本章为R语言回归分析之上部分,主要向读者们展示如何运用R语言完成ols(普通最小二乘)回归:简单线性回归、多项式回归、多元线性回归的语言编程示例,以及检验回归分析中统计假设的方法。回归类型用途简单线性用一个量化的解释变量来预测一</div> </li> <li><a href="/article/1892621811837890560.htm" title="【SpringBoot教程】SpringBoot 统一异常处理(附核心工具类-ErrorInfoBuilder)" target="_blank">【SpringBoot教程】SpringBoot 统一异常处理(附核心工具类-ErrorInfoBuilder)</a> <span class="text-muted">撸代码的羊驼</span> <a class="tag" taget="_blank" href="/search/springboot/1.htm">springboot</a><a class="tag" taget="_blank" href="/search/springboot/1.htm">springboot</a> <div>作者简介:大家好,我是撸代码的羊驼,前阿里巴巴架构师,现某互联网公司CTO联系v:sulny_ann(17362204968),加我进群,大家一起学习,一起进步,一起对抗互联网寒冬#序言此前,我们主要通过在控制层(Controller)中手动捕捉异常(TryCatch)和处理错误,在SpringBoot统一异常处理的做法主要有两种:一是基于注解ExceptionHandler,二是基于接口Erro</div> </li> <li><a href="/article/1892621431838142464.htm" title="代码报错:‘msgfmt‘ 不是内部或外部命令,也不是可运行的程序或批处理文件" target="_blank">代码报错:‘msgfmt‘ 不是内部或外部命令,也不是可运行的程序或批处理文件</a> <span class="text-muted">司南锤</span> <a class="tag" taget="_blank" href="/search/%E4%BB%A3%E7%A0%81%E6%8A%A5%E9%94%99/1.htm">代码报错</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>出现'msgfmt'不是内部或外部命令的错误,通常是因为系统缺少GNUgettext工具(msgfmt是其组件之一)。以下是解决方法:1.安装gettext工具msgfmt是gettext工具的一部分,需先安装它:Windows系统:方法1:直接下载二进制文件访问gettextforWindows下载预编译的gettext工具包。解压文件到某个目录(如C:\gettext)。将C:\gettext</div> </li> <li><a href="/article/1892619793341673472.htm" title="【SpringBoot3】Spring Boot 3.0 集成 Mybatis Plus" target="_blank">【SpringBoot3】Spring Boot 3.0 集成 Mybatis Plus</a> <span class="text-muted">m0_74824661</span> <a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0%E8%B7%AF%E7%BA%BF/1.htm">学习路线</a><a class="tag" taget="_blank" href="/search/%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4/1.htm">阿里巴巴</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/mybatis/1.htm">mybatis</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>文章目录一、什么是MybatisPlus特性二、SpringBoot3.0集成MybatisPlus三、MybatisPlus查询示例1、普通查询2、分页查询参考一、什么是MybatisPlusMyBatis-Plus(简称MP)是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑</div> </li> <li><a href="/article/1892619666724024320.htm" title="【R语言数据分析】基于R语言对中、美两国GDP分析(R语言大作业)" target="_blank">【R语言数据分析】基于R语言对中、美两国GDP分析(R语言大作业)</a> <span class="text-muted">m0_73866147</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/1.htm">数据分析</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a><a class="tag" taget="_blank" href="/search/r%E8%AF%AD%E8%A8%80/1.htm">r语言</a> <div>目录一、研究意义二、数据来源三、读取数据读取数据代码运行结果截图四、数据分析绘制箱线图建立箱线图代码运行结果截图五、建立回归模型建立回归模型代码运行结果截图有关于相关系数的计算与检验六、回归分析确定回归方程七、预测中国和美国未来的GDP值、预测中国的GDP赶超美国的时间数据可视化八、总结一、研究意义GDP作为衡量一个国家经济发展的重要指标,被赋予了非常重要的意义,深刻反映着当下经济发展的现状。中美</div> </li> <li><a href="/article/1892616517376339968.htm" title="飞书二维码联合登录,对接起来太简单了" target="_blank">飞书二维码联合登录,对接起来太简单了</a> <span class="text-muted">王念博客</span> <a class="tag" taget="_blank" href="/search/%E9%A3%9E%E4%B9%A6/1.htm">飞书</a> <div>1.先创建一个飞书应用2.引入JS库3.自定义jsconstgoto="https://passport.feishu.cn/suite/passport/oauth/authorize?client_id=cli_&redirect_uri=httindex&response_type=code&state=STATE";constQRLoginObj=QRLogin({id:"login_co</div> </li> <li><a href="/article/1892614879488045056.htm" title="【全栈】SprintBoot+vue3迷你商城-细节解析(2):分页" target="_blank">【全栈】SprintBoot+vue3迷你商城-细节解析(2):分页</a> <span class="text-muted">杰九</span> <a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>【全栈】SprintBoot+vue3迷你商城-细节解析(2):分页往期的文章都在这里啦,大家有兴趣可以看一下后端部分:【全栈】SprintBoot+vue3迷你商城(1)【全栈】SprintBoot+vue3迷你商城(2)【全栈】SprintBoot+vue3迷你商城-扩展:利用python爬虫爬取商品数据【全栈】SprintBoot+vue3迷你商城(3)【全栈】SprintBoot+vue3</div> </li> <li><a href="/article/1892614501472202752.htm" title="有需要2025年参加蓝桥杯比赛的同学往下看!!!" target="_blank">有需要2025年参加蓝桥杯比赛的同学往下看!!!</a> <span class="text-muted">岱宗夫up</span> <a class="tag" taget="_blank" href="/search/%E6%95%99%E7%A8%8B/1.htm">教程</a><a class="tag" taget="_blank" href="/search/%E8%93%9D%E6%A1%A5%E6%9D%AF/1.htm">蓝桥杯</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA%E5%92%8C%E5%8F%91%E5%B1%95/1.htm">职场和发展</a> <div>有需要2025年参加蓝桥杯比赛的同学往下下看!!!以下是关于近两年(2023年和2024年)蓝桥杯Python组考点的详细总结:一、2023年蓝桥杯Python考点分析在2023年的蓝桥杯Python竞赛中,考点主要集中在基础算法、数据结构、动态规划、数学、高精度计算以及二分查找等方面。(一)基础算法基础算法是竞赛的基石,包括枚举、排序(如冒泡排序、选择排序、插入排序等)、搜索(如BFS和DFS)</div> </li> <li><a href="/article/1892613994695421952.htm" title="SpringBoot:SpringBoot统一响应和统一异常处理" target="_blank">SpringBoot:SpringBoot统一响应和统一异常处理</a> <span class="text-muted">奋斗的狍子007</span> <a class="tag" taget="_blank" href="/search/Spring/1.htm">Spring</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a><a class="tag" taget="_blank" href="/search/%E7%BB%9F%E4%B8%80%E5%BC%82%E5%B8%B8%E5%A4%84%E7%90%86/1.htm">统一异常处理</a><a class="tag" taget="_blank" href="/search/%E7%BB%9F%E4%B8%80%E5%93%8D%E5%BA%94/1.htm">统一响应</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%AE%9A%E4%B9%89%E5%BC%82%E5%B8%B8/1.htm">自定义异常</a> <div>一、前言  在开发SpringBoot应用时,处理响应结果和异常的方式对项目的可维护性、可扩展性和团队协作有着至关重要的影响。分散的响应结果和异常处理逻辑往往会导致代码冗余、难以理解和维护。因此,统一结果返回和统一异常处理是提升项目质量的关键策略之一。二、统一结果返回  统一结果返回通常意味着为所有控制器方法定义一个标准的响应格式。这可以通过创建一个或多个响应实体类来实现,这些类包含了状态码、消息</div> </li> <li><a href="/article/1892612356228313088.htm" title="CTF解题技能之MISC基础(持续更新)" target="_blank">CTF解题技能之MISC基础(持续更新)</a> <span class="text-muted">l2xcty</span> <a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a> <div>CTF解题技能之MISC基础文章目录CTF解题技能之MISC基础前言一、文件类型识别二、文件分离1.binwalk分离2.foremost分离3.dd4.fcrackzip5.010editor总结前言本篇主要介绍杂项基础题目的知识点以及所需的工具以及案例。通过百度网盘分享的文件:第二次小组活动链接:https://pan.baidu.com/s/1p02AwZDKCPyGeBbh1YhmDg?p</div> </li> <li><a href="/article/1892610592175353856.htm" title="Swift 的 KeyPath 是什么?" target="_blank">Swift 的 KeyPath 是什么?</a> <span class="text-muted">打工人你好</span> <a class="tag" taget="_blank" href="/search/swift/1.htm">swift</a> <div>Swift的KeyPath是什么?一、语法解析二、KeyPath的核心作用1.类型安全的属性引用2.动态访问属性3.函数式编程与数据驱动三、SwiftUI中的典型应用场景1.动态UI组件配置2.与`@dynamicMemberLookup`结合3.动画与状态管理四、对比其他技术五、进阶技巧1.类型擦除的KeyPath2.KeyPath组合总结在Swift中,KeyPath>是一种类型安全的属性路径</div> </li> <li><a href="/article/1892605045170565120.htm" title="DeepSpeed Chat大模型训练【训练类ChatGPT 的大模型】" target="_blank">DeepSpeed Chat大模型训练【训练类ChatGPT 的大模型】</a> <span class="text-muted">u013250861</span> <a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/LLM%2F%E8%AE%AD%E7%BB%83/1.htm">LLM/训练</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a> <div>第1章:DeepSpeed-Chat模型训练实战本章内容介绍如何使用微软最新发布的DeepSpeedChat来训练类ChatGPT的大模型。通过本章内容,你将了解:DS-Chat是什么?如何准备运行环境ChatGPT训练的基本知识DS-Chat的使用方法【观看视频解说】1DeepSpeed-Chat是什么?【观看视频解说】DeepSpeed-Chat是微软最新公布的一套工具,用于训练类ChatGP</div> </li> <li><a href="/article/1892604918787796992.htm" title="主要空间数据挖掘方法" target="_blank">主要空间数据挖掘方法</a> <span class="text-muted">CodeYoung7</span> <a class="tag" taget="_blank" href="/search/%E6%80%BB%E7%BB%93%E5%BD%92%E7%BA%B3/1.htm">总结归纳</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E6%8C%96%E6%8E%98/1.htm">数据挖掘</a><a class="tag" taget="_blank" href="/search/%E5%9C%B0%E7%90%86%E4%BF%A1%E6%81%AF/1.htm">地理信息</a> <div>文章出自:http://blog.csdn.net/shaoz/article/details/6847925张新长马林兵等,《地理信息系统数据库》[M],科学出版社,2005年2月第二章第二节空间数据空间数据挖掘是多学科和多种技术交叉综合的新领域,其挖掘方法以人工智能、专家系统、机器学习、数据库和统计等成熟技术为基础。下面介绍近年来出现的主要空间数据挖掘方法。1、空间分析方法利用GIS的各种空间</div> </li> <li><a href="/article/1892604034032922624.htm" title="二分查找!!!!" target="_blank">二分查找!!!!</a> <span class="text-muted">xiaolin0333</span> <a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/%E4%BA%8C%E5%88%86%E6%9F%A5%E6%89%BE/1.htm">二分查找</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E4%BA%8C%E5%88%86%E6%9F%A5%E6%89%BE/1.htm">二分查找</a> <div>比如有个从小到大排列的数组:[5,7,7,8,8,10]找到第一个≥8的数的位置左闭右闭:vectornums{5,7,7,8,8,10};inttarget=8;intlower_bound1(){intl=0,r=nums.size()-1;while(l<=r){//[l,r]intm=l+(r-l)/2;if(nums[m]<target){//[m+1,r]l=m+1;}else{//[</div> </li> <li><a href="/article/1892603907176198144.htm" title="aop解决 防重复提交" target="_blank">aop解决 防重复提交</a> <span class="text-muted">小羊炒饭</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a> <div>背景描述虽然前端控制了按钮不能连续点击,但是在网络信号弱的情况下,仍然会出现第一次点击,请求A网络信号弱,这个时候前端按钮仍然可以点击,然后用户点击第二次。结果两次请求全部成功,数据库生成了两条除了ID以外一模一样的数据。(业务上不允许这种数据出现)解决方式采用AOP,对于不能重复提交的接口在后端加上控制。第一步自定义注解/***@Authorztc*@Description防止重复提交自定义注解</div> </li> <li><a href="/article/1892601637646692352.htm" title="【MySQL】表空间丢失处理(Tablespace is missing for table 错误处理)" target="_blank">【MySQL】表空间丢失处理(Tablespace is missing for table 错误处理)</a> <span class="text-muted">m0_74824823</span> <a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0%E8%B7%AF%E7%BA%BF/1.htm">学习路线</a><a class="tag" taget="_blank" href="/search/%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4/1.htm">阿里巴巴</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a> <div>问题背景最近,我在运行一个基于Python爬虫的项目时,爬虫需要频繁与MySQL数据库交互。不幸的是,在数据爬取过程中,Windows系统突然强制更新并重启。这次意外中断导致MySQL数据库的三个表格(2022年、2023年和2024年的数据表)出现了“Tablespaceismissing”的错误。起初,我尝试了常规的CHECKTABLE和REPAIRTABLE方法,但这些都没有解决问题。最终,</div> </li> <li><a href="/article/1892601639928393728.htm" title="【update 更新数据语法合集】.NET开源ORM框架 SqlSugar 系列" target="_blank">【update 更新数据语法合集】.NET开源ORM框架 SqlSugar 系列</a> <span class="text-muted">m0_74824823</span> <a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0%E8%B7%AF%E7%BA%BF/1.htm">学习路线</a><a class="tag" taget="_blank" href="/search/%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4/1.htm">阿里巴巴</a><a class="tag" taget="_blank" href="/search/.net/1.htm">.net</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E6%BA%90/1.htm">开源</a> <div>系列文章目录???.NET开源ORM框架SqlSugar系列???文章目录系列文章目录前言??一、实体对象更新1.1单条与批量1.2不更新某列1.3只更新某列1.4NULL列不更新1.5无主键/指定列1.6更新添加条件1.7大数据更新1.8重新赋值1:list中的值修改1.9重新赋值2:列中的值+1二、根据表达式更新(像SQL)2.1指定多个字段更新2.2一个字段更新2.3字段+1更新2.4Set</div> </li> <li><a href="/article/1892600504161202176.htm" title="全开源商城源码后台php全端uniapp 全开源可二开 功能强大 商城系统源码" target="_blank">全开源商城源码后台php全端uniapp 全开源可二开 功能强大 商城系统源码</a> <span class="text-muted">专业软件系统开发</span> <a class="tag" taget="_blank" href="/search/%E6%BA%90%E7%A0%81%E4%B8%8B%E8%BD%BD/1.htm">源码下载</a><a class="tag" taget="_blank" href="/search/%E5%85%A8%E5%BC%80%E6%BA%90%E5%95%86%E5%9F%8E%E6%BA%90%E7%A0%81/1.htm">全开源商城源码</a> <div>内容目录一、详细介绍二、效果展示1.部分代码2.效果图展示三、学习资料下载一、详细介绍内置8中搭配主色(可自行扩展更多配色)、自由快捷切换适应各大行业需求已支持小程序(微信、QQ、百度、支付宝、头条&抖音、快手)+H5+APPApp.vue中修改request_url和static_url地址为自己的商城地址即可使用主题默认为红色(red),如更改主题App.vue文件中修改default_the</div> </li> <li><a href="/article/1892599613123260416.htm" title="Kafka消息服务之Java工具类" target="_blank">Kafka消息服务之Java工具类</a> <span class="text-muted">不会飞的小龙人</span> <a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/kafka/1.htm">kafka</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97/1.htm">消息队列</a><a class="tag" taget="_blank" href="/search/mq/1.htm">mq</a> <div>注:此内容是本人在另一个技术平台发布的历史文章,转载发布到CSDN;ApacheKafka是一个开源分布式事件流平台,也是当前系统开发中流行的高性能消息队列服务,数千家公司使用它来实现高性能数据管道、流分析、数据集成和关键任务应用程序。Kafka可以很好地替代更传统的消息代理。消息代理的使用原因多种多样(将处理与数据生产者分离开来、缓冲未处理的消息等)。与大多数消息系统相比,Kafka具有更好的吞</div> </li> <li><a href="/article/1892597346198417408.htm" title="集成测试 详解" target="_blank">集成测试 详解</a> <span class="text-muted">飞滕人生TYF</span> <a class="tag" taget="_blank" href="/search/%E9%9B%86%E6%88%90%E6%B5%8B%E8%AF%95/1.htm">集成测试</a><a class="tag" taget="_blank" href="/search/%E6%B5%8B%E8%AF%95/1.htm">测试</a> <div>集成测试详解集成测试(IntegrationTesting)是一种软件测试方法,用于验证多个模块或组件之间的交互是否符合预期。它在单元测试之后执行,确保各模块在组合后能够协同工作。一、集成测试的定义集成测试的重点是测试模块之间的接口和交互,而不是单个模块的功能。目标是发现模块集成过程中可能存在的问题,如数据格式不匹配、通信协议错误或逻辑交互缺陷。二、集成测试的特点模块交互性:测试模块间的通信是否正</div> </li> <li><a href="/article/1892592057378205696.htm" title="Python 继承详解" target="_blank">Python 继承详解</a> <span class="text-muted">江湖一条鱼</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>继承是面向对象编程(OOP)的一个重要特性,允许一个类(子类)从另一个类(父类)继承属性和方法。继承可以提高代码的重用性,增强程序的可扩展性和可维护性。目录一、继承的作用二、继承的语法1.单继承2.多继承三、子类扩展1.添加新功能2.重写父类方法3.调用父类方法四、继承的特殊情况1.子类初始化父类2.方法解析顺序(MRO)五、抽象类与接口1.抽象类2.接口3.ABC类4.使用方法1.定义抽象基类2</div> </li> <li><a href="/article/1892591173487357952.htm" title="C++ 游戏开发:从零到英雄的进阶之旅" target="_blank">C++ 游戏开发:从零到英雄的进阶之旅</a> <span class="text-muted">孤寂大仙v</span> <a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a> <div>在当今数字化时代,游戏开发已然成为极具吸引力与挑战性的领域。C++作为游戏开发中极为常用的语言之一,凭借其高性能和强大功能,长久以来都是游戏开发者的心头好。若你对游戏开发满怀热忱,却不知如何起步,这篇博客就将为你揭开C++游戏开发的神秘面纱,引领你踏上从新手到高手的进阶之路。一、为什么选择C++进行游戏开发?在游戏开发的广袤天地里,编程语言的抉择至关重要。C++以其独有的优势,成为众多开发者的不二</div> </li> <li><a href="/article/1892588403338309632.htm" title="CCF-CSP 2013-12(前四题)" target="_blank">CCF-CSP 2013-12(前四题)</a> <span class="text-muted">啦哈拉哈</span> <a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a> <div>提前声明:由于本人自身能力,只做了前四题,根据acwing上面的CCF-CSP辅导写的。第一题:出现次数最多的数问题描述给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。输入格式输入的第一行只有一个正整数n(1≤n≤1000),表示数字的个数。输入的第二行有n个整数s1,s2,…,sn(1≤si≤10000,1≤i≤n)。相邻的数用空格分隔。输出格式输出这n个次</div> </li> <li><a href="/article/1892588276997484544.htm" title="代码随想录打卡第五十一天" target="_blank">代码随想录打卡第五十一天</a> <span class="text-muted">zengy5</span> <a class="tag" taget="_blank" href="/search/%E4%BB%A3%E7%A0%81%E9%9A%8F%E6%83%B3%E5%BD%95%E5%88%B7%E9%A2%98%E6%B5%81%E7%A8%8B/1.htm">代码随想录刷题流程</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E4%BC%98%E5%85%88/1.htm">深度优先</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E5%9B%BE%E8%AE%BA/1.htm">图论</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/leetcode/1.htm">leetcode</a> <div>代码随想录–图论部分day51图论第二天文章目录代码随想录--图论部分一、卡码网99--岛屿数量二、卡码网100--岛屿的最大面积一、卡码网99–岛屿数量代码随想录题目链接:代码随想录给定一个由1(陆地)和0(水)组成的矩阵,你需要计算岛屿的数量。岛屿由水平方向或垂直方向上相邻的陆地连接而成,并且四周都是水域。你可以假设矩阵外均被水包围。没太看懂教程的解法,所以这里是自己的做法正常把图存进来,遍历</div> </li> <li><a href="/article/1892584115232894976.htm" title="自动化测试的学习路线" target="_blank">自动化测试的学习路线</a> <span class="text-muted">Ws_</span> <a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a> <div>自动化测试是提高软件开发效率和质量的关键手段。学习自动化测试通常涉及多个方面的技能,从基础的编程语言知识到测试工具的使用,再到实际的测试脚本编写和执行。以下是一个学习自动化测试的路线图,帮助你有条不紊地掌握相关技能:1.基础知识在开始自动化测试之前,首先要具备一定的编程和软件测试基础:编程语言:Python、Java、JavaScript或者Ruby(根据你选择的自动化测试工具决定)软件测试基础:</div> </li> <li><a href="/article/1892581591247548416.htm" title="Anaconda与python和pycharm的安装及其关系" target="_blank">Anaconda与python和pycharm的安装及其关系</a> <span class="text-muted">Daylight..</span> <a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/1.htm">学习笔记</a><a class="tag" taget="_blank" href="/search/pycharm/1.htm">pycharm</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/ide/1.htm">ide</a> <div>Anaconda与python和pycharm的安装及其关系一、Anaconda与python和pycharm的关系:1.Anaconda包含python,并且里面含有许多常用的库。(安装了Anaconda就不需要安装python了)2.pycharm是一种IDE(集成开发环境),在其中可以编写Python程序。(工具和语言的关系)。二、如何安装?Anaconda的安装Anaconda官网下载地址</div> </li> <li><a href="/article/1892580705813196800.htm" title="【无标题】" target="_blank">【无标题】</a> <span class="text-muted">是懒羊羊吖~</span> <a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a> <div>一.WED前端应用软件:c/s架构b/s架构web前端:html5css3javascripthtml5:超文本标记语言----超链接,文字,标签标签语法规范:结束-----双标签标签体------可以嵌套inputimg---------单标签属性:定制元素的行为,属性是不通用的,每一个标签存在自身的属性,当属性名等于属性值时,只需要写属性名,不需要写属性值。二.HTML1.样式//文档声明:告</div> </li> <li><a href="/article/1892579443919089664.htm" title="python图形界面化编程GUI(二)常用的组件(Text、Radiobutton、Checkbutton、Canvas)和布局管理器(gird、pack、place)" target="_blank">python图形界面化编程GUI(二)常用的组件(Text、Radiobutton、Checkbutton、Canvas)和布局管理器(gird、pack、place)</a> <span class="text-muted">hwwaizs</span> <a class="tag" taget="_blank" href="/search/python-GUI%E5%9B%BE%E5%BD%A2%E5%8C%96%E7%BC%96%E7%A8%8B/1.htm">python-GUI图形化编程</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>Text文本框Text(多行文本框)的主要用于显示多行文本,还可以显示网页链接,图片,HTML页面,甚至CSS样式表,添加组件等。主要用来显示信息,也常被当做简单的文本处理器、⽂本编辑器或者网页浏览器来使用。IDLE就是Text组件构成的。insert插入的时候可以用INSERT代表当前光标的位置,END代表在结尾的位置,也可以用插入小数的形式,2.3代表第二行第三列后插入。fromtkinter</div> </li> <li><a href="/article/1892577804894138368.htm" title="基于微信小程序的天气预报平台的设计与实现" target="_blank">基于微信小程序的天气预报平台的设计与实现</a> <span class="text-muted">usp1994</span> <a class="tag" taget="_blank" href="/search/%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F/1.htm">微信小程序</a><a class="tag" taget="_blank" href="/search/%E5%B0%8F%E7%A8%8B%E5%BA%8F/1.htm">小程序</a> <div>基于微信小程序的天气预报平台的设计与实现DesignandImplementationofaWeatherForecastPlatformBasedonWeChatMiniProgram完整下载链接:基于微信小程序的天气预报平台的设计与实现文章目录基于微信小程序的天气预报平台的设计与实现摘要第一章引言1.1研究背景1.2研究目的1.3研究方法1.4论文结构第二章相关技术介绍2.1微信小程序开发2.</div> </li> <li><a href="/article/1892576291241127936.htm" title="贪心之P8669 [蓝桥杯 2018 省 B] 乘积最大" target="_blank">贪心之P8669 [蓝桥杯 2018 省 B] 乘积最大</a> <span class="text-muted">筏.k</span> <a class="tag" taget="_blank" href="/search/%E5%88%B7%E9%A2%98%E5%B0%8F%E8%AE%B0/1.htm">刷题小记</a><a class="tag" taget="_blank" href="/search/%E8%93%9D%E6%A1%A5%E6%9D%AF/1.htm">蓝桥杯</a><a class="tag" taget="_blank" href="/search/%E8%B4%AA%E5%BF%83%E7%AE%97%E6%B3%95/1.htm">贪心算法</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a> <div>文章目录前言一、例题二、题目分析三、代码解答前言分享每日一题之洛谷P8669[蓝桥杯2018省B]乘积最大提示:以下是本篇文章正文内容,下面案例可供参考一、例题二、题目分析题意:在N个数中取K个数,使这K个数的乘积最大,答案对1000000009取模看到这题,首先想到贪心,第一是因为要求乘积最大,第二是因为数据不是特别大,遇到求一个极值的东西可以想想贪心,但也要结合题意和数据范围来具体判断到底用哪</div> </li> <li><a href="/article/90.htm" title="java观察者模式" target="_blank">java观察者模式</a> <span class="text-muted">3213213333332132</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a><a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%88%8F/1.htm">游戏</a><a class="tag" taget="_blank" href="/search/%E8%A7%82%E5%AF%9F%E8%80%85%E6%A8%A1%E5%BC%8F/1.htm">观察者模式</a> <div>观察者模式——顾名思义,就是一个对象观察另一个对象,当被观察的对象发生变化时,观察者也会跟着变化。 在日常中,我们配java环境变量时,设置一个JAVAHOME变量,这就是被观察者,使用了JAVAHOME变量的对象都是观察者,一旦JAVAHOME的路径改动,其他的也会跟着改动。 这样的例子很多,我想用小时候玩的老鹰捉小鸡游戏来简单的描绘观察者模式。 老鹰会变成观察者,母鸡和小鸡是</div> </li> <li><a href="/article/217.htm" title="TFS RESTful API 模拟上传测试" target="_blank">TFS RESTful API 模拟上传测试</a> <span class="text-muted">ronin47</span> <div>       TFS RESTful API 模拟上传测试。    细节参看这里:https://github.com/alibaba/nginx-tfs/blob/master/TFS_RESTful_API.markdown 模拟POST上传一个图片: curl --data-binary @/opt/tfs.png http</div> </li> <li><a href="/article/344.htm" title="PHP常用设计模式单例, 工厂, 观察者, 责任链, 装饰, 策略,适配,桥接模式" target="_blank">PHP常用设计模式单例, 工厂, 观察者, 责任链, 装饰, 策略,适配,桥接模式</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a><a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a> <div>// 多态, 在JAVA中是这样用的, 其实在PHP当中可以自然消除, 因为参数是动态的, 你传什么过来都可以, 不限制类型, 直接调用类的方法 abstract class Tiger { public abstract function climb(); } class XTiger extends Tiger { public function climb()</div> </li> <li><a href="/article/471.htm" title="hibernate" target="_blank">hibernate</a> <span class="text-muted">171815164</span> <a class="tag" taget="_blank" href="/search/Hibernate/1.htm">Hibernate</a> <div>main,save Configuration conf =new Configuration().configure(); SessionFactory sf=conf.buildSessionFactory(); Session sess=sf.openSession(); Transaction tx=sess.beginTransaction(); News a=new </div> </li> <li><a href="/article/598.htm" title="Ant实例分析" target="_blank">Ant实例分析</a> <span class="text-muted">g21121</span> <a class="tag" taget="_blank" href="/search/ant/1.htm">ant</a> <div>        下面是一个Ant构建文件的实例,通过这个实例我们可以很清楚的理顺构建一个项目的顺序及依赖关系,从而编写出更加合理的构建文件。           下面是build.xml的代码: <?xml version="1</div> </li> <li><a href="/article/725.htm" title="[简单]工作记录_接口返回405原因" target="_blank">[简单]工作记录_接口返回405原因</a> <span class="text-muted">53873039oycg</span> <a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C/1.htm">工作</a> <div>         最近调接口时候一直报错,错误信息是:       responseCode:405 responseMsg:Method Not Allowed        接口请求方式Post. </div> </li> <li><a href="/article/852.htm" title="关于java.lang.ClassNotFoundException 和 java.lang.NoClassDefFoundError 的区别" target="_blank">关于java.lang.ClassNotFoundException 和 java.lang.NoClassDefFoundError 的区别</a> <span class="text-muted">程序员是怎么炼成的</span> <div>   真正完成类的加载工作是通过调用 defineClass来实现的;  而启动类的加载过程是通过调用 loadClass来实现的;  就是类加载器分为加载和定义   protected Class<?> findClass(String name) throws ClassNotFoundExcept</div> </li> <li><a href="/article/979.htm" title="JDBC学习笔记-JDBC详细的操作流程" target="_blank">JDBC学习笔记-JDBC详细的操作流程</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/jdbc/1.htm">jdbc</a> <div>所有的JDBC应用程序都具有下面的基本流程:  1、加载数据库驱动并建立到数据库的连接。  2、执行SQL语句。  3、处理结果。  4、从数据库断开连接释放资源。 下面我们就来仔细看一看每一个步骤: 其实按照上面所说每个阶段都可得单独拿出来写成一个独立的类方法文件。共别的应用来调用。 1、加载数据库驱动并建立到数据库的连接:   Html代码  St</div> </li> <li><a href="/article/1106.htm" title="rome创建rss" target="_blank">rome创建rss</a> <span class="text-muted">antonyup_2006</span> <a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a><a class="tag" taget="_blank" href="/search/cms/1.htm">cms</a><a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a><a class="tag" taget="_blank" href="/search/struts/1.htm">struts</a><a class="tag" taget="_blank" href="/search/Opera/1.htm">Opera</a> <div>引用 1.RSS标准 RSS标准比较混乱,主要有以下3个系列 RSS 0.9x / 2.0 : RSS技术诞生于1999年的网景公司(Netscape),其发布了一个0.9版本的规范。2001年,RSS技术标准的发展工作被Userland Software公司的戴夫 温那(Dave Winer)所接手。陆续发布了0.9x的系列版本。当W3C小组发布RSS 1.0后,Dave W</div> </li> <li><a href="/article/1233.htm" title="html表格和表单基础" target="_blank">html表格和表单基础</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/%E8%A1%A8%E6%A0%BC/1.htm">表格</a><a class="tag" taget="_blank" href="/search/%E8%A1%A8%E5%8D%95/1.htm">表单</a><a class="tag" taget="_blank" href="/search/meta/1.htm">meta</a><a class="tag" taget="_blank" href="/search/%E9%94%9A%E7%82%B9/1.htm">锚点</a> <div>第一次用html来写东西,感觉压力山大,每次看见别人发的都是比较牛逼的 再看看自己什么都还不会,   html是一种标记语言,其实很简单都是固定的格式   _----------------------------------------表格和表单 表格是html的重要组成部分,表格用在body里面的 主要用法如下; <table> &</div> </li> <li><a href="/article/1360.htm" title="ibatis如何传入完整的sql语句" target="_blank">ibatis如何传入完整的sql语句</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/ibatis/1.htm">ibatis</a> <div>        ibatis如何传入完整的sql语句?进一步说,String str ="select * from test_table",我想把str传入ibatis中执行,是传递整条sql语句。         解决办法: <</div> </li> <li><a href="/article/1487.htm" title="精通Oracle10编程SQL(14)开发动态SQL" target="_blank">精通Oracle10编程SQL(14)开发动态SQL</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/plsql/1.htm">plsql</a> <div>/* *开发动态SQL */ --使用EXECUTE IMMEDIATE处理DDL操作 CREATE OR REPLACE PROCEDURE drop_table(table_name varchar2) is sql_statement varchar2(100); begin sql_statement:='DROP TABLE '||table_name; </div> </li> <li><a href="/article/1614.htm" title="【Linux命令】Linux工作中常用命令" target="_blank">【Linux命令】Linux工作中常用命令</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/linux%E5%91%BD%E4%BB%A4/1.htm">linux命令</a> <div>不断的总结工作中常用的Linux命令   1.查看端口被哪个进程占用   通过这个命令可以得到占用8085端口的进程号,然后通过ps -ef|grep 进程号得到进程的详细信息   netstat -anp | grep 8085   察看进程ID对应的进程占用的端口号   netstat -anp | grep 进程ID &</div> </li> <li><a href="/article/1741.htm" title="优秀网站和文档收集" target="_blank">优秀网站和文档收集</a> <span class="text-muted">白糖_</span> <a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%AB%99/1.htm">网站</a> <div>集成 Flex, Spring, Hibernate 构建应用程序   性能测试工具-JMeter   Hmtl5-IOCN网站   Oracle精简版教程网站   鸟哥的linux私房菜   Jetty中文文档   50个jquery必备代码片段   swfobject.js检测flash版本号工具</div> </li> <li><a href="/article/1868.htm" title="angular.extend" target="_blank">angular.extend</a> <span class="text-muted">boyitech</span> <a class="tag" taget="_blank" href="/search/AngularJS/1.htm">AngularJS</a><a class="tag" taget="_blank" href="/search/angular.extend/1.htm">angular.extend</a><a class="tag" taget="_blank" href="/search/AngularJS+API/1.htm">AngularJS API</a> <div>angular.extend 复制src对象中的属性去dst对象中. 支持多个src对象. 如果你不想改变一个对象,你可以把dst设为空对象{}: var object = angular.extend({}, object1, object2). 注意: angular.extend不支持递归复制. 使用方法: angular.extend(dst, src); 参数: </div> </li> <li><a href="/article/1995.htm" title="java-谷歌面试题-设计方便提取中数的数据结构" target="_blank">java-谷歌面试题-设计方便提取中数的数据结构</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>网上找了一下这道题的解答,但都是提供思路,没有提供具体实现。其中使用大小堆这个思路看似简单,但实现起来要考虑很多。 以下分别用排序数组和大小堆来实现。 使用大小堆: import java.util.Arrays; public class MedianInHeap { /** * 题目:设计方便提取中数的数据结构 * 设计一个数据结构,其中包含两个函数,1.插</div> </li> <li><a href="/article/2122.htm" title="ajaxFileUpload 针对 ie jquery 1.7+不能使用问题修复版本" target="_blank">ajaxFileUpload 针对 ie jquery 1.7+不能使用问题修复版本</a> <span class="text-muted">Chen.H</span> <a class="tag" taget="_blank" href="/search/ajaxFileUpload/1.htm">ajaxFileUpload</a><a class="tag" taget="_blank" href="/search/ie6/1.htm">ie6</a><a class="tag" taget="_blank" href="/search/ie7/1.htm">ie7</a><a class="tag" taget="_blank" href="/search/ie8/1.htm">ie8</a><a class="tag" taget="_blank" href="/search/ie9/1.htm">ie9</a> <div>jQuery.extend({ handleError: function( s, xhr, status, e ) { // If a local callback was specified, fire it if ( s.error ) { s.error.call( s.context || s, xhr, status, e ); } </div> </li> <li><a href="/article/2249.htm" title="[机器人制造原则]机器人的电池和存储器必须可以替换" target="_blank">[机器人制造原则]机器人的电池和存储器必须可以替换</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E5%88%B6%E9%80%A0/1.htm">制造</a> <div>        机器人的身体随时随地可能被外来力量所破坏,但是如果机器人的存储器和电池可以更换,那么这个机器人的思维和记忆力就可以保存下来,即使身体受到伤害,在把存储器取下来安装到一个新的身体上之后,原有的性格和能力都可以继续维持.....        另外,如果一</div> </li> <li><a href="/article/2376.htm" title="Oracle Multitable INSERT 的用法" target="_blank">Oracle Multitable INSERT 的用法</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a> <div>转载Oracle笔记-Multitable INSERT 的用法 http://blog.chinaunix.net/uid-8504518-id-3310531.html 一、Insert基础用法 语法:     Insert Into 表名 (字段1,字段2,字段3...)     Values (值1,</div> </li> <li><a href="/article/2503.htm" title="专访黑客历史学家George Dyson" target="_blank">专访黑客历史学家George Dyson</a> <span class="text-muted">datamachine</span> <a class="tag" taget="_blank" href="/search/on/1.htm">on</a> <div>20世纪最具威力的两项发明——核弹和计算机出自同一时代、同一群年青人。可是,与大名鼎鼎的曼哈顿计划(第二次世界大战中美国原子弹研究计划)相 比,计算机的起源显得默默无闻。出身计算机世家的历史学家George Dyson在其新书《图灵大教堂》(Turing’s Cathedral)中讲述了阿兰·图灵、约翰·冯·诺依曼等一帮子天才小子创造计算机及预见计算机未来</div> </li> <li><a href="/article/2630.htm" title="小学6年级英语单词背诵第一课" target="_blank">小学6年级英语单词背诵第一课</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/english/1.htm">english</a><a class="tag" taget="_blank" href="/search/word/1.htm">word</a> <div>always 总是 rice 水稻,米饭 before 在...之前 live 生活,居住   usual 通常的 early 早的 begin 开始 month 月份   year 年 last 最后的 east 东方的 high 高的   far 远的 window 窗户 world 世界 than 比...更   </div> </li> <li><a href="/article/2757.htm" title="在线IT教育和在线IT高端教育" target="_blank">在线IT教育和在线IT高端教育</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/%E6%95%99%E8%82%B2/1.htm">教育</a> <div>codecademy  http://www.codecademy.com codeschool  https://www.codeschool.com teamtreehouse  http://teamtreehouse.com lynda http://www.lynda.com/ Coursera https://www.coursera.</div> </li> <li><a href="/article/2884.htm" title="Struts2 xml校验框架所定义的校验文件" target="_blank">Struts2 xml校验框架所定义的校验文件</a> <span class="text-muted">蕃薯耀</span> <a class="tag" taget="_blank" href="/search/Struts2+xml%E6%A0%A1%E9%AA%8C/1.htm">Struts2 xml校验</a><a class="tag" taget="_blank" href="/search/Struts2+xml%E6%A0%A1%E9%AA%8C%E6%A1%86%E6%9E%B6/1.htm">Struts2 xml校验框架</a><a class="tag" taget="_blank" href="/search/Struts2%E6%A0%A1%E9%AA%8C/1.htm">Struts2校验</a> <div>  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 蕃薯耀 2015年7月11日 15:54:59 星期六 http://fa</div> </li> <li><a href="/article/3011.htm" title="mac下安装rar和unrar命令" target="_blank">mac下安装rar和unrar命令</a> <span class="text-muted">hanqunfeng</span> <a class="tag" taget="_blank" href="/search/mac/1.htm">mac</a> <div>1.下载:http://www.rarlab.com/download.htm 选择 RAR 5.21 for Mac OS X 2.解压下载后的文件 tar -zxvf rarosx-5.2.1.tar 3.cd rar sudo install -c -o $USER unrar /bin #输入当前用户登录密码 sudo install -c -o $USER rar</div> </li> <li><a href="/article/3138.htm" title="三种将list转换为map的方法" target="_blank">三种将list转换为map的方法</a> <span class="text-muted">jackyrong</span> <a class="tag" taget="_blank" href="/search/list/1.htm">list</a> <div>  在本文中,介绍三种将list转换为map的方法: 1) 传统方法 假设有某个类如下    class Movie { private Integer rank; private String description; public Movie(Integer rank, String des</div> </li> <li><a href="/article/3265.htm" title="年轻程序员需要学习的5大经验" target="_blank">年轻程序员需要学习的5大经验</a> <span class="text-muted">lampcy</span> <a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C/1.htm">工作</a><a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a> <div>在过去的7年半时间里,我带过的软件实习生超过一打,也看到过数以百计的学生和毕业生的档案。我发现很多事情他们都需要学习。或许你会说,我说的不就是某种特定的技术、算法、数学,或者其他特定形式的知识吗?没错,这的确是需要学习的,但却并不是最重要的事情。他们需要学习的最重要的东西是“自我规范”。这些规范就是:尽可能地写出最简洁的代码;如果代码后期会因为改动而变得凌乱不堪就得重构;尽量删除没用的代码,并添加</div> </li> <li><a href="/article/3392.htm" title="评“女孩遭野蛮引产致终身不育 60万赔偿款1分未得”医腐深入骨髓" target="_blank">评“女孩遭野蛮引产致终身不育 60万赔偿款1分未得”医腐深入骨髓</a> <span class="text-muted">nannan408</span> <div>先来看南方网的一则报道: 再正常不过的结婚、生子,对于29岁的郑畅来说,却是一个永远也无法实现的梦想。从2010年到2015年,从24岁到29岁,一张张新旧不一的诊断书记录了她病情的同时,也清晰地记下了她人生的悲哀。   粗暴手术让人发寒   2010年7月,在酒店做服务员的郑畅发现自己怀孕了,可男朋友却联系不上。在没有和家人商量的情况下,她决定堕胎。   12月5日,</div> </li> <li><a href="/article/3519.htm" title="使用jQuery为input输入框绑定回车键事件 VS 为a标签绑定click事件" target="_blank">使用jQuery为input输入框绑定回车键事件 VS 为a标签绑定click事件</a> <span class="text-muted">Everyday都不同</span> <a class="tag" taget="_blank" href="/search/jsp/1.htm">jsp</a><a class="tag" taget="_blank" href="/search/input/1.htm">input</a><a class="tag" taget="_blank" href="/search/%E5%9B%9E%E8%BD%A6%E9%94%AE%E7%BB%91%E5%AE%9A/1.htm">回车键绑定</a><a class="tag" taget="_blank" href="/search/click/1.htm">click</a><a class="tag" taget="_blank" href="/search/enter/1.htm">enter</a> <div>假设如题所示的事件为同一个,必须先把该js函数抽离出来,该函数定义了监听的处理:   function search() { //监听函数略...... }   为input框绑定回车事件,当用户在文本框中输入搜索关键字时,按回车键,即可触发search():   //回车绑定 $(".search").keydown(fun</div> </li> <li><a href="/article/3646.htm" title="EXT学习记录" target="_blank">EXT学习记录</a> <span class="text-muted">tntxia</span> <a class="tag" taget="_blank" href="/search/ext/1.htm">ext</a> <div>  1. 准备   (1) 官网:http://www.sencha.com/   里面有源代码和API文档下载。   EXT的域名已经从www.extjs.com改成了www.sencha.com ,但extjs这个域名会自动转到sencha上。   (2)帮助文档:   想要查看EXT的官方文档的话,可以去这里h</div> </li> <li><a href="/article/3773.htm" title="mybatis3的mapper文件报Referenced file contains errors" target="_blank">mybatis3的mapper文件报Referenced file contains errors</a> <span class="text-muted">xingguangsixian</span> <a class="tag" taget="_blank" href="/search/mybatis/1.htm">mybatis</a> <div>最近使用mybatis.3.1.0时无意中碰到一个问题: The errors below were detected when validating the file "mybatis-3-mapper.dtd" via the file "account-mapper.xml". In most cases these errors can be d</div> </li> </ul> </div> </div> </div> <div> <div class="container"> <div class="indexes"> <strong>按字母分类:</strong> <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a> </div> </div> </div> <footer id="footer" class="mb30 mt30"> <div class="container"> <div class="footBglm"> <a target="_blank" href="/">首页</a> - <a target="_blank" href="/custom/about.htm">关于我们</a> - <a target="_blank" href="/search/Java/1.htm">站内搜索</a> - <a target="_blank" href="/sitemap.txt">Sitemap</a> - <a target="_blank" href="/custom/delete.htm">侵权投诉</a> </div> <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved. <!-- <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>--> </div> </div> </footer> <!-- 代码高亮 --> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script> <link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/> <script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script> </body> </html>