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/1938886222583754752.htm" title="带标签的 Docker 镜像打包为 tar 文件" target="_blank">带标签的 Docker 镜像打包为 tar 文件</a> <span class="text-muted">大霸王龙</span> <a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/1.htm">容器</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a> <div>现在还有人用docker吗要将带标签的Docker镜像打包为tar文件,请使用dockersave命令。以下是详细操作指南:一、单镜像打包(推荐方式)#基础格式dockersave-o[输出文件名].tar[镜像名]:[标签]#示例:将my-app:1.0保存为app-backup.tardockersave-oapp-backup.tarmy-app:1.0二、多镜像打包#同时打包多个镜像到单个</div> </li> <li><a href="/article/1938886096263901184.htm" title="稳定币独角兽:Circle" target="_blank">稳定币独角兽:Circle</a> <span class="text-muted">InnoLink_1024</span> <a class="tag" taget="_blank" href="/search/%E5%8C%BA%E5%9D%97%E9%93%BE/1.htm">区块链</a><a class="tag" taget="_blank" href="/search/%E7%A8%B3%E5%AE%9A%E5%B8%81/1.htm">稳定币</a><a class="tag" taget="_blank" href="/search/%E5%8C%BA%E5%9D%97%E9%93%BE/1.htm">区块链</a> <div>Circle公司背景分析CircleInternetFinancial(以下简称Circle)是一家成立于2013年的美国金融科技公司,总部位于波士顿,由JeremyAllaire和SeanNeville联合创立。公司最初专注于点对点加密货币支付和交易,后转型为全球领先的稳定币发行机构,其核心产品是与美元1:1挂钩的USDCoin(USDC),目前为全球第二大稳定币,仅次于Tether的USDT。</div> </li> <li><a href="/article/1938883949338095616.htm" title="初学翁凯老师的c语言后对其中一些问题的看法" target="_blank">初学翁凯老师的c语言后对其中一些问题的看法</a> <span class="text-muted">Obltv</span> <a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/%E5%88%9D%E5%AD%A6c%E8%AF%AD%E8%A8%80/1.htm">初学c语言</a><a class="tag" taget="_blank" href="/search/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a> <div>文章目录初学翁凯老师的c语言后对其中一些问题的看法一、一个课后的简单逻辑语法问题二、解答和一些思考1.**++i++--**2.**i++++**3.**a=b+=c++-d+--e/-f**问题初探原代码逻辑举例初次写博客的看法及感受初学翁凯老师的c语言后对其中一些问题的看法学习c语言已有数天,其中一些问题今日来看仍有研究价值,故记录探讨之一、一个课后的简单逻辑语法问题++i+±-i++++a=</div> </li> <li><a href="/article/1938882685581717504.htm" title="Spring Batch :高效处理海量数据的利器" target="_blank">Spring Batch :高效处理海量数据的利器</a> <span class="text-muted">一叶飘零_sweeeet</span> <a class="tag" taget="_blank" href="/search/Springboot/1.htm">Springboot</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> <div>SpringBatch是Spring框架中一个功能强大的批处理框架,旨在帮助开发人员轻松处理大量数据的批量操作,比如数据的导入、导出、转换以及定期的数据清理等任务。它提供了一套完善且灵活的机制,使得原本复杂繁琐的数据批处理工作变得条理清晰、易于管理和扩展。接下来,我们将全方位深入探究SpringBatch,从其核心概念、架构组成,到具体的使用示例以及在不同场景下的应用优势等,带你充分领略它的魅力所</div> </li> <li><a href="/article/1938881173027614720.htm" title="Python训练营打卡——DAY16(2025.5.5)" target="_blank">Python训练营打卡——DAY16(2025.5.5)</a> <span class="text-muted">cosine2025</span> <a class="tag" taget="_blank" href="/search/Python%E8%AE%AD%E7%BB%83%E8%90%A5%E6%89%93%E5%8D%A1/1.htm">Python训练营打卡</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><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a> <div>目录一、NumPy数组基础笔记1.理解数组的维度(Dimensions)2.NumPy数组与深度学习Tensor的关系3.一维数组(1DArray)4.二维数组(2DArray)5.数组的创建5.1数组的简单创建5.2数组的随机化创建5.3数组的遍历5.4数组的运算6.数组的索引6.1一维数组索引6.2二维数组索引6.3三维数组索引二、SHAP值的深入理解三、总结1.NumPy数组基础总结2.SH</div> </li> <li><a href="/article/1938874872239288320.htm" title="2025 最新 【中兴通讯】投资价值分析报告" target="_blank">2025 最新 【中兴通讯】投资价值分析报告</a> <span class="text-muted">AI天才研究院</span> <a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97/1.htm">计算</a><a class="tag" taget="_blank" href="/search/ai/1.htm">ai</a><a class="tag" taget="_blank" href="/search/%E4%BB%B7%E5%80%BC%E6%8A%95%E8%B5%84/1.htm">价值投资</a> <div>2025.3.28最新【中兴通讯】投资价值分析报告文章目录2025.3.28最新【中兴通讯】投资价值分析报告摘要一、公司概况与行业背景1.1公司基本架构1.2战略升级路径1.3行业发展趋势通信设备市场格局(2024年)技术迭代周期二、核心竞争力分析2.1技术壁垒2.2市场优势2.3供应链能力三、财务深度解析3.1关键指标趋势(单位:亿元)3.2资产负债表亮点3.3现金流质量四、风险与机遇评估4.1</div> </li> <li><a href="/article/1938873735821979648.htm" title="游戏研发高效利器:SVN资源动态项目管理解决方案" target="_blank">游戏研发高效利器:SVN资源动态项目管理解决方案</a> <span class="text-muted">还债大湿兄</span> <a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%88%8F/1.htm">游戏</a><a class="tag" taget="_blank" href="/search/%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86/1.htm">项目管理</a> <div>一、问题背景与解决方案传统资源分发痛点:人工打包耗时:平均每次版本发布需2小时版本隔离:不同团队无法同时使用多个版本资源冲突:美术/QA/策划资源版本不一致动态管理方案优势:二、系统核心流程//完整工作流控制器voidGameResourceManager::executeFullWorkflow(){//1.凭证验证if(!validateCredentials()){showError("认证</div> </li> <li><a href="/article/1938871719687155712.htm" title="ArkTS与仓颉语言的深度解析(鸿蒙操作系统多设备)" target="_blank">ArkTS与仓颉语言的深度解析(鸿蒙操作系统多设备)</a> <span class="text-muted">爱学习的小齐哥哥</span> <a class="tag" taget="_blank" href="/search/%E4%BB%93%E9%A2%89/1.htm">仓颉</a><a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BA/1.htm">华为</a><a class="tag" taget="_blank" href="/search/%E4%BB%93%E9%A2%89/1.htm">仓颉</a><a class="tag" taget="_blank" href="/search/HarmonyOS5/1.htm">HarmonyOS5</a> <div>一、引言随着物联网和智能设备的飞速发展,多设备协同开发成为当前软件开发领域的重要课题。鸿蒙操作系统作为面向全场景的分布式操作系统,为开发者提供了ArkTS和仓颉语言两种强大的开发工具,助力实现高效的多设备应用开发。本文将全面剖析这两种语言在鸿蒙多设备开发中的应用,探讨其优势、开发环境、实现一次开发多端部署的方法以及在不同设备上的性能表现和适配策略,并结合智能驾驶应用场景进行实例分析。二、ArkTS</div> </li> <li><a href="/article/1938870962413957120.htm" title="[学习] PID算法原理与实践(代码示例)" target="_blank">[学习] PID算法原理与实践(代码示例)</a> <span class="text-muted">极客不孤独</span> <a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/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/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a> <div>PID算法原理与实践文章目录PID算法原理与实践一、PID算法原理1.1PID算法概述1.定义2.应用领域3.核心目标1.2基本原理1.3数学表达离散化实现(适用于数字控制)二、实践案例(C语言)1.电机转速控制2.温度控制系统3.时钟驯服系统三、常见问题与优化1.积分饱和(Windup)问题2.噪声干扰问题3.非线性系统适配问题四、扩展方向1.数字PID与模拟PID的差异2.变参数PID(如增益</div> </li> <li><a href="/article/1938870963240235008.htm" title="[学习] C语言编程中线程安全的实现方法(示例)" target="_blank">[学习] C语言编程中线程安全的实现方法(示例)</a> <span class="text-muted">极客不孤独</span> <a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a> <div>C语言编程中线程安全的实现方法在多线程编程中,线程安全(ThreadSafety)是一个非常重要的概念。当多个线程同时访问共享资源时,如果没有合理的同步机制,就可能导致数据竞争、死锁甚至程序崩溃。本文将详细介绍在C语言中如何实现线程安全的几种主要方式,并提供可以实际运行的代码示例。文章目录C语言编程中线程安全的实现方法一、什么是线程安全?二、C语言中线程安全的实现方式方法一:互斥锁(Mutex)✅</div> </li> <li><a href="/article/1938870835234271232.htm" title="洛谷 木材加工 二分查找" target="_blank">洛谷 木材加工 二分查找</a> <span class="text-muted">自由随风飘</span> <a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95%E7%BB%83%E4%B9%A0/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/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a><a class="tag" taget="_blank" href="/search/leetcode/1.htm">leetcode</a> <div>题目背景要保护环境题目描述木材厂有n根原木,现在想把这些木头切割成k段长度均为l的小段木头(木头有可能有剩余)。当然,我们希望得到的小段木头越长越好,请求出l的最大值。木头长度的单位是cm,原木的长度都是正整数,我们要求切割得到的小段木头的长度也是正整数。例如有两根原木长度分别为11和21,要求切割成等长的6段,很明显能切割出来的小段木头长度最长为5。输入格式第一行是两个正整数n,k,分别表示原木</div> </li> <li><a href="/article/1938867175368486912.htm" title="Git使用基本指南" target="_blank">Git使用基本指南</a> <span class="text-muted">LEIX_lll</span> <a class="tag" taget="_blank" href="/search/git/1.htm">git</a> <div>一、Git基础配置首先需要配置用户信息,让Git知道你是谁:gitconfig--globaluser.name"你的名字"gitconfig--globaluser.email"你的邮箱@example.com"如果需要查看配置信息,可以使用:gitconfig--list二、仓库操作1.创建新仓库gitinit该命令会在当前目录下创建一个新的Git仓库。2.克隆已有仓库gitclone[远程仓</div> </li> <li><a href="/article/1938866671062151168.htm" title="川翔云电脑全新上线:三维行业高效云端算力新选择" target="_blank">川翔云电脑全新上线:三维行业高效云端算力新选择</a> <span class="text-muted">渲染101专业云渲染</span> <a class="tag" taget="_blank" href="/search/%E7%94%B5%E8%84%91/1.htm">电脑</a><a class="tag" taget="_blank" href="/search/houdini/1.htm">houdini</a><a class="tag" taget="_blank" href="/search/maya/1.htm">maya</a><a class="tag" taget="_blank" href="/search/blender/1.htm">blender</a><a class="tag" taget="_blank" href="/search/3d/1.htm">3d</a><a class="tag" taget="_blank" href="/search/%E4%BA%91%E8%AE%A1%E7%AE%97/1.htm">云计算</a> <div>一、核心定位与优势云端虚拟工作站服务依托云端高性能CPU/GPU集群,提供远程桌面服务,支持普通设备运行专业软件。按需付费模式:无需采购高端硬件,大幅降低成本投入。生态协同优势:与渲染101同属母公司,可在云电脑中完成创作后一键提交至渲染101平台进行分布式渲染。二、硬件配置与性能参数CPU机型(侧重计算能力)GPU机型(图形渲染/AI训练)性能亮点支持最高8卡并联,显存叠加提升复杂场景处理能力。</div> </li> <li><a href="/article/1938863396162170880.htm" title="[Python]-基础篇1- 从零开始的Python入门指南" target="_blank">[Python]-基础篇1- 从零开始的Python入门指南</a> <span class="text-muted">踏雪无痕老爷子</span> <a class="tag" taget="_blank" href="/search/Python/1.htm">Python</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>无论你是尚未接触编程的新手,还是想从其他语言转向Python的开发者,这篇文章都是你的入门课。一、Python是什么?Python是一种解释型、高级、通用型编程语言,以简洁明了、简单易用着称。它可以应用于网站开发、自动化脚本、数据分析、人工智能、系统操作等多种场景。二、如何安装Python步骤:访问Python官方网站选择目前最新的Python3.x版本下载Windows用户请务必勾选“AddPy</div> </li> <li><a href="/article/1938856717974564864.htm" title="RK3566系统移植 | 基于rk-linux-sdk移植uboot(2017.09)" target="_blank">RK3566系统移植 | 基于rk-linux-sdk移植uboot(2017.09)</a> <span class="text-muted">Mculover666</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>文章目录一、测试已有的配置二、移植到fireflyROC-RK3566开发板1.新建单板2.新建设备树3.编译4.测试一、测试已有的配置查看rksdk中提供的uboot中对于rk3566的配置:rk3566.config内容如下:CONFIG_BASE_DEFCONFIG="rk3568_defconfig"CONFIG_LOADER_INI="RK3566MINIALL.ini"因为rk3566</div> </li> <li><a href="/article/1938856213508845568.htm" title="Linux I/O 文件操作详解:从系统调用到实际工程应用" target="_blank">Linux I/O 文件操作详解:从系统调用到实际工程应用</a> <span class="text-muted">平凡灵感码头</span> <a class="tag" taget="_blank" href="/search/linux%E5%AD%A6%E4%B9%A0/1.htm">linux学习</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a> <div>一、写在前面在Linux或任何类Unix操作系统中,文件是一切的核心——无论是硬盘上的文本文件,还是串口设备、GPIO寄存器、甚至网络接口,几乎都被抽象为“文件”。理解Linux下的I/O文件操作机制,不仅是嵌入式开发的基础,也是进行系统编程与底层控制的关键。二、I/O的本质:一切皆文件Linux将外设抽象成文件的方式,统一了对各种资源的操作模型。你可以用open打开串口设备/dev/ttyS0,</div> </li> <li><a href="/article/1938855580877778944.htm" title="Spring AI快速入门" target="_blank">Spring AI快速入门</a> <span class="text-muted">学java的cc</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</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/java/1.htm">java</a> <div>一、引入依赖org.springframework.aispring-ai-starter-model-openaiorg.springframework.aispring-ai-bom${spring-ai.version}pomimport二、配置模型spring:ai:openai:base-url:https://dashscope.aliyuncs.com/compatible-mode</div> </li> <li><a href="/article/1938855453471600640.htm" title="Python爬虫实战:全方位爬取知乎学习板块问答数据" target="_blank">Python爬虫实战:全方位爬取知乎学习板块问答数据</a> <span class="text-muted">Python爬虫项目</span> <a class="tag" taget="_blank" href="/search/2025%E5%B9%B4%E7%88%AC%E8%99%AB%E5%AE%9E%E6%88%98%E9%A1%B9%E7%9B%AE/1.htm">2025年爬虫实战项目</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/scrapy/1.htm">scrapy</a><a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%88%8F/1.htm">游戏</a> <div>1.项目背景与爬取目标知乎是中国最大的知识问答社区,聚集了大量高质量的学习资源和经验分享。爬取知乎“学习”板块的问答数据,可以为学习资料整理、舆情分析、推荐系统开发等提供数据支持。本项目目标:爬取“学习”话题下的热门问答列表抓取每个问答的标题、作者、回答内容、点赞数、评论数等详细信息实现动态加载内容的抓取,包含图片和富文本避免被反爬机制限制,保证数据采集稳定结合数据分析,为后续应用打基础2.知乎“</div> </li> <li><a href="/article/1938855201297461248.htm" title="Python爬虫实战:爬取知乎问答与用户信息" target="_blank">Python爬虫实战:爬取知乎问答与用户信息</a> <span class="text-muted">Python爬虫项目</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a><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%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E6%BA%90/1.htm">开源</a> <div>简介随着网络信息量的爆炸,如何有效获取有价值的内容,成为了数据分析、机器学习等领域的基础之一。爬虫作为数据采集的基本工具之一,常常被用来获取互联网上的公开数据。在这篇博客中,我们将结合最新的Python爬虫技术,详细讲解如何爬取知乎问答与用户信息。本文将会介绍:Python爬虫的基础知识知乎问答网页结构分析使用Python进行知乎数据爬取爬取知乎问答内容与用户信息如何处理和存储爬取的数据使用最新的</div> </li> <li><a href="/article/1938854571623378944.htm" title="【机器学习&深度学习】反向传播机制" target="_blank">【机器学习&深度学习】反向传播机制</a> <span class="text-muted"></span> <div>目录一、一句话定义二、类比理解三、为什重要?四、用生活例子解释:神经网络=烹饪机器人4.1第一步:尝一口(前向传播)4.2第二步:倒着推原因(反向传播)五、换成人工智能流程说一遍六、图示类比:找山顶(最优参数)七、总结一句人话八、PyTorch代码示例:亲眼看到每一层的梯度九、梯度=损失函数对参数的偏导数十、类比总结反向传播(Backpropagation)是神经网络中训练过程的核心机制,它就像“</div> </li> <li><a href="/article/1938854193129385984.htm" title="python实战项目79:采集知乎话题下的所有回答" target="_blank">python实战项目79:采集知乎话题下的所有回答</a> <span class="text-muted">wp_tao</span> <a class="tag" taget="_blank" href="/search/Python%E5%89%AF%E4%B8%9A%E6%8E%A5%E5%8D%95%E5%AE%9E%E6%88%98%E9%A1%B9%E7%9B%AE/1.htm">Python副业接单实战项目</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>python实战项目79:采集知乎话题下的所有回答一、项目介绍二、代码使用方法三、drissionpage的优缺点四、完整代码五、注意事项一、项目介绍需求是采集知乎某话题下的所有回答,这里以话题“大学宿舍相处之间遇到莫名其妙的冷落怎么办呢?”为例,网页链接为https://www.zhihu.com/question/1898156781215146265,其中189815678121514626</div> </li> <li><a href="/article/1938853435931684864.htm" title="使用 pip 命令下载 whl离线安装包、安装" target="_blank">使用 pip 命令下载 whl离线安装包、安装</a> <span class="text-muted">三希</span> <a class="tag" taget="_blank" href="/search/pip/1.htm">pip</a> <div>使用pip命令直接从线上下载whl离线安装包并转存到离线环境的过程实际上是分两步进行的:第一步:在线环境下载whl包bash#在具有网络连接的环境中pipdownload--only-binary=:all:--wheel--platform--python-version这里的参数说明::需要下载的Python包名称。--only-binary=:all::只下载二进制包(即whl文件)。--w</div> </li> <li><a href="/article/1938852049307365376.htm" title="MySQL表达式之公用表表达式(CTE)的使用示例" target="_blank">MySQL表达式之公用表表达式(CTE)的使用示例</a> <span class="text-muted">@Corgi</span> <a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF%E5%BC%80%E5%8F%91/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><a class="tag" taget="_blank" href="/search/CTE/1.htm">CTE</a> <div>示例一数据表中有每个企业每年每月并且每月的产值是累加的数据的数据记录需求:统计企业产值能力,找出所有家企业中产值最高的企业,其产值记为P。对于第i家企业,其产值为Pi则该企业的产值能力评分=Pi/P×100。SQL:--使用ROW_NUMBER()为每个企业每年每个月的产值排名,筛选出每个企业每年最大月份的产值。WITHMaxMonthlyOutputAS(SELECTcompany_id,dec</div> </li> <li><a href="/article/1938846129529614336.htm" title="游戏寻路之A*算法(GUI演示)" target="_blank">游戏寻路之A*算法(GUI演示)</a> <span class="text-muted">jforgame</span> <a class="tag" taget="_blank" href="/search/%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8B%E6%90%AD%E5%BB%BA%E6%B8%B8%E6%88%8F%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%A1%86%E6%9E%B6/1.htm">从零开始搭建游戏服务器框架</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/A%E6%98%9F/1.htm">A星</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%AF%BB%E8%B7%AF/1.htm">自动寻路</a> <div>一、A*算法介绍A*算法是一种路径搜索算法,用于在图形网络中找到最短路径。它结合了Dijkstra算法和启发式搜索的思想,通过综合利用已知的最短路径和估计的最短路径来优化搜索过程。在游戏自动寻路得到广泛应用。二、A*算法的基本思想在图形网络中选择一个起点和终点。维护两个列表:开放列表和关闭列表。开放列表用于存储待考虑的节点,关闭列表用于存储已考虑过的节点。将起点加入开放列表。循环以下工作当open</div> </li> <li><a href="/article/1938845750951735296.htm" title="从历史到未来:《今日简史》与《原则》的世界格局研究" target="_blank">从历史到未来:《今日简史》与《原则》的世界格局研究</a> <span class="text-muted">喝醉酒的小白</span> <a class="tag" taget="_blank" href="/search/%E7%A0%B4%E4%B8%87%E5%8D%B7/1.htm">破万卷</a><a class="tag" taget="_blank" href="/search/%E5%8E%86%E5%8F%B2/1.htm">历史</a> <div>目录标题一、引言:两种视角下的世界格局二、世界观比较:历史演进与系统运行2.1赫拉利的人类中心史观2.2达利欧的系统论世界观2.3世界观的异同与互补三、方法论比较:历史叙事与系统建模3.1赫拉利的历史叙事方法3.2达利欧的系统建模方法3.3方法论的异同与互补四、核心议题比较:科技、经济与全球治理4.1科技变革:颠覆性力量的不同解读4.2经济周期:历史规律的不同阐释4.3全球治理:未来秩序的不同展望</div> </li> <li><a href="/article/1938845119646068736.htm" title="微服务分布式事务的几种解决方案及应用场景" target="_blank">微服务分布式事务的几种解决方案及应用场景</a> <span class="text-muted">凌晨四点的打铁声</span> <a class="tag" taget="_blank" href="/search/%E5%88%86%E5%B8%83%E5%BC%8F%E4%BA%8B%E5%8A%A1/1.htm">分布式事务</a><a class="tag" taget="_blank" href="/search/%E5%BE%AE%E6%9C%8D%E5%8A%A1/1.htm">微服务</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E5%B8%83%E5%BC%8F/1.htm">分布式</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/springcloud/1.htm">springcloud</a> <div>文章目录分布式事务的几种方案1.2pcseata的AT一阶段二阶段-回滚二阶段-提交2.柔性事务——TCC事务补偿型3.柔性事务-最大努力通知型方案4.柔性事务-可靠消息+最终一致性方案(异步确保型)分布式事务的几种方案2pc模式TCC模式:柔性事务——TCC事务补偿型柔性事务-最大努力通知型方案柔性事务-可靠消息+最终一致性方案(异步确保型)1.2pc2pc就是2phasecommit二阶段提交</div> </li> <li><a href="/article/1938843983497195520.htm" title="Redis配置与优化" target="_blank">Redis配置与优化</a> <span class="text-muted">?ccc?</span> <a class="tag" taget="_blank" href="/search/redis/1.htm">redis</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/%E7%BC%93%E5%AD%98/1.htm">缓存</a> <div>目录一:Redis介绍1:关系数据库与非关系型数据库2:Redis基础2.1Redis简介2.2Redis安装部署2.3配置参数3:Redis命令工具3.1redis-cli命令行工具3.2redis-benchmark测试工具4:Redis数据库常用命令4.1key相关命令4.2多数据库常用命令二:Redis持久化1:RDB和AOF的区别2:RDB和AOF的优缺点3:Redis持久化配置三:性能</div> </li> <li><a href="/article/1938843730811351040.htm" title="Shell 编程之正则表达式与文本处理器" target="_blank">Shell 编程之正则表达式与文本处理器</a> <span class="text-muted"></span> <div>目录一:正则表达式二:基础正则表达式1.基础正则表达式示例(1)查找特定字符(2)利用中括号“[]”来查找集合字符(3)查找行首“^”与行尾字符“$”(4)查找任意一个字符“.”与重复字符“*”(5)查找连续字符范围“{}”2.元字符总结3.扩展正则表达式二:文本处理器1.sed工具(1)输出符合条件的文本(p表示正常输出)(2)删除符合条件的文本(d)(3)替换符合条件的文本(4)迁移符合条件的</div> </li> <li><a href="/article/1938843731260141568.htm" title="Nginx 核心功能" target="_blank">Nginx 核心功能</a> <span class="text-muted">?ccc?</span> <a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a> <div>目录一:正向代理1:编译安装Nginx(1)安装支持软件(2)创建运行用户、组和日志目录(3)编译安装Nginx(4)添加Nginx系统服务2:配置正向代理二:反向代理1:配置nginx七层代理2:配置nginx四层代理三:Nginx缓存1:缓存功能的核心原理和缓存类型2:代理缓存功能设置四:Nginxrewrite和正则一:正向代理正向代理(ForwardProxy)是一种位于客户端和原始服务器</div> </li> <li><a href="/article/1938842848967323648.htm" title="疲劳检测与行为分析:工厂智能化实践" target="_blank">疲劳检测与行为分析:工厂智能化实践</a> <span class="text-muted">智驱力人工智能</span> <a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/%E6%99%BA%E6%85%A7%E5%9F%8E%E5%B8%82/1.htm">智慧城市</a><a class="tag" taget="_blank" href="/search/%E8%A1%8C%E4%B8%BA%E8%AF%86%E5%88%AB/1.htm">行为识别</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%91%98%E5%B1%9E%E6%80%A7%E8%AF%86%E5%88%AB/1.htm">人员属性识别</a><a class="tag" taget="_blank" href="/search/%E7%96%B2%E5%8A%B3%E6%A3%80%E6%B5%8B/1.htm">疲劳检测</a><a class="tag" taget="_blank" href="/search/%E6%8A%BD%E7%83%9F%E6%A3%80%E6%B5%8B/1.htm">抽烟检测</a><a class="tag" taget="_blank" href="/search/%E5%BE%98%E5%BE%8A%E6%A3%80%E6%B5%8B/1.htm">徘徊检测</a> <div>视觉分析算法赋能工厂疲劳与安全管理一、背景与需求在制造业中,疲劳作业是导致安全事故和效率下降的核心因素之一。传统人工巡检存在覆盖面不足、响应滞后等问题,而基于视觉分析的智能监控系统通过多算法协同,可实现全天候、高精度的疲劳检测与行为管理。本文围绕疲劳检测算法、人员计数算法、抽烟检测算法及徘徊检测算法,探讨其在工厂场景中的技术实现与应用价值。二、技术实现疲劳检测算法原理:基于PERCLOS(眼睑闭合</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>