BeautifulSoup中一些函数的用法归纳

BeautifulSoup作为一个强大的从HTML或则XML文件中提取数据的Python库,它能通过解析文档为用户提供需要抓取的数据。同时,它可以很好的处理不规范标记并生成剖析树(parse tree)并提供简单又常用的导航(navigating),搜索以及修改剖析树的操作。它可以大大节省你的编程时间。
接下来归纳一下之前在看书过程中发现的一些不懂的对数据爬取得方法

先给出官方文档:http://beautifulsoup.readthedocs.io/zh_CN/latest/

解释器
Beautiful Soup支持Python标准库中的HTML解析器,还支持一些第三方的解析器,其中包括 lxml 和 html5lib 。可以通过pip或easy_install来安装这两个解释器。这几者之间的差别见这里。

BeautifulSoup介绍

首先,Beautifulsoup将复杂的HTML或者XML文件解析成复杂的树形结构,每个节点都是Python对象,所有的4个节点可以分为:Tag,NavigableString,BeautifulSoup,Comment。

TAG

Tag与HTML原生文档中的Tag标签一致
例如:
soup=BeautifulSoup('Page title','html.parser')
a=soup.title
print(a)

输出结果为Page title

Tag中有两个重要的属性:name和attributes.

1.name:

每个Tag都有自己的名字,例如同样是上面的例子:
soup=BeautifulSoup('Page title','html.parser')
a=soup.title
a=a.name
print(a)

输出结果:title
总结:Tag的name属性即为标签的名字,可以通过’.’操作符进行访问

2.attributes:

attributes代表的是Tag标签内的属性,例如:
soup=BeautifulSoup('

This is paragraph one.

','html.parser')
a=soup.p
a=a['id']
print(a)

输出结果为:firstpara
同时,Python提供了attrs方法以字典的形式返回Tag内的所有属性。例如:
soup=BeautifulSoup('

This is paragraph one.

','html.parser')
a=soup.p
a=a.attrs
print(a)

输出结果为:{'id': 'firstpara', 'align': 'center'}

既然我们已经得到了标签的内容,那么要想获取标签内部的文字怎么办呢?很简单,用 .string 即可,例如

soup=BeautifulSoup('

This is paragraph

','html.parser')
a=soup.string
print(a)

输出结果为:This is paragraph

它的类型是一个 NavigableString,翻译过来叫 可以遍历的字符串,不过我们最好还是称它英文名字吧
BeautifulSoup

BeautifulSoup

BeautifulSoup对象表示的是一个文档的全部内容。大部分时候,可以把它当作 Tag 对象,它支持遍历文档树和搜索文档树中描述的大部分的方法.

因为 BeautifulSoup 对象并不是真正的HTML或XML的tag,所以它没有name和attribute属性。但有时查看它的.name 属性是很方便的,所以 BeautifulSoup 对象包含了一个值为[document]的特殊属性 .name
例如:
soup=BeautifulSoup('

  • This is paragraph one.
  • ','html.parser')
    a=soup.name
    print(a)

    输出结果为:[document]

    Comment

    Comment 对象是一个特殊类型的 NavigableString 对象:

    markup = ""
    soup = BeautifulSoup(markup)
    comment = soup.b.string
    type(comment)
    输出结果为:

    b标签里的内容实际上是注释,但是如果我们利用 .string 来输出它的内容,我们发现它已经把注释符号去掉了,所以这可能会给我们带来不必要的麻烦。

    另外我们打印输出下它的类型,发现它是一个 Comment 类型,所以,我们在使用前最好做一下判断,判断代码如下
    if type(soup.b.string)==bs4.element.Comment:
    print soup.a.string

    BeautifulSoup中常用方法总结

    1.parent 方法

    上面说到过,BeautifulSoup将复杂的HTML或者XML文件解析成复杂的树形结构,每个节点都是Python对象。所以parent方法顾名思义,代表的是父节点。通过.parent可以访问某标签的上一个标签
    例如:
    doc = ['Page title',
    '

    This is paragraph one.

    ',
    '

    This is paragraph two.

    ',
    '

    This is paragraph three.

    '
    '']
    soup = BeautifulSoup(''.join(doc),'html.parser')
    v=soup.p
    c=v.parent.name

    print(c)
    输出结果为body
    从doc中可以看出p标签的上一个标签(父标签)为body

    2.contents方法

    parent方法用于向上遍历树节点,contents方法用于向下遍历树节点,即向下访问某节点的子节点。
    tag的.contents 属性可以将tag的子节点以列表的方式输出。
    例如同样是上面的例子:
    soup = BeautifulSoup(''.join(doc),'html.parser')
    v=soup.p
    c=v.contents
    print(c)

    输出结果为:['This is paragraph ', one, '.']

    又如:soup = BeautifulSoup(”.join(doc),’html.parser’)
    v=soup.head
    a=v.contents
    b=v.contents[0]
    c=b.contents
    print(a)
    print(b)
    print(c)

    输出结果为:[Page title]
    Page title
    ['Page title']

    b=v.contents[0]这一行代码中,因为v.contents返回的是列表,所以不能直接用a.contents取出标签title中的内容,只能将列表中的Tag取出,在访问子节点。

    3.string方法

    为了方便,如果一个标签只有一个子节点,而且该子节点还是字符串类型的,则该子节点可以通过tag.string的形式访问。同时,如果一个节点仅有一个子节点,则该子节点也可以用.string进行访问,输出结果与当前唯一子节点的 .string 结果相同。
    例如:
    soup = BeautifulSoup(''.join(doc),'html.parser')
    v=soup.b
    b=v.string
    print(b)

    输出结果为:one
    soup.b返回包含标签b的字典。因为b标签仅有一个子节点,且该子节点是字符串类型(同时也满足仅有一个子节点的条件),所以可以直接用.string方法访问该子节点。

    注意:soup.p.string返回的是None,因为p标签的子节点并不是只有一个,而是有多个子节点,这时候不满足使用string的条件,所以会返回None。同时虽然 Tag只有一个子节点,但是这个子节点是Tag类型 ( Tag</code>), 不是NavigableString。</p> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1274846416665067520"></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-爬虫)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1901939803608379392.htm" title="F12抓包用于做postman接口测试的全过程解析" target="_blank">F12抓包用于做postman接口测试的全过程解析</a> <span class="text-muted">自动化测试君</span> <a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95/1.htm">软件测试</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/1.htm">自动化测试</a><a class="tag" taget="_blank" href="/search/%E6%8E%A5%E5%8F%A3%E6%B5%8B%E8%AF%95/1.htm">接口测试</a><a class="tag" taget="_blank" href="/search/postman/1.htm">postman</a><a class="tag" taget="_blank" href="/search/%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7/1.htm">测试工具</a><a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95/1.htm">软件测试</a><a class="tag" taget="_blank" href="/search/%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB/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>一、为什么抓包从功能测试角度通过抓包查看隐藏字段Web表单中会有很多隐藏的字段,这些隐藏字段一般都有一些特殊的用途,比如收集用户的数据,预防CRSF攻击,防网络爬虫,以及一些其他用途。这些隐藏字段在界面上都看不到,如果想检测这些字段,就必须要使用抓包工具。通过抓包工具了解协议内容方便开展接口和性能测试性能测试方面,性能测试其实就是大量模拟用户的请求,所以我们必须要知道请求中的协议内容和特点,才能更</div> </li> <li><a href="/article/1901919375074586624.htm" title="python_学习爬虫遇到的第二个问题_urllib获取baidu搜索后网页源代码" target="_blank">python_学习爬虫遇到的第二个问题_urllib获取baidu搜索后网页源代码</a> <span class="text-muted">KJDETL</span> <a class="tag" taget="_blank" href="/search/python_%E7%88%AC%E8%99%AB/1.htm">python_爬虫</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a> <div>第二天学习爬虫,学习的是通过urllib.request和urllib.parse获取baidu搜索后网页源代码。importurllib.requestimporturllib.parse#请求网址url='https://www.baidu.com/s?'#想要搜索的内容data={'wd':'周杰伦'}#通过urllib.parse.urlencode将data进行url编码new_data</div> </li> <li><a href="/article/1901868184336658432.htm" title="网络爬虫之urllib库" target="_blank">网络爬虫之urllib库</a> <span class="text-muted">db_zwm_2035</span> <a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a> <div>目录前言:一、urllib库简介二、使用urllib.request获取网页内容三、处理URL和请求头部四、解析URLs和查询参数五、处理异常七、总结前言:随着互联网的快速发展,网络数据已经成为我们获取信息、解决问题的重要来源。网络爬虫作为获取网络数据的重要工具,越来越受到人们的关注。Python作为一种简单易学、功能强大的编程语言,在网络爬虫领域也得到了广泛的应用。在Python中,urllib</div> </li> <li><a href="/article/1901868182092705792.htm" title="国密系列加密技术及其在爬虫逆向中的应用研究" target="_blank">国密系列加密技术及其在爬虫逆向中的应用研究</a> <span class="text-muted">ylfhpy</span> <a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB%E9%A1%B9%E7%9B%AE%E5%AE%9E%E6%88%98/1.htm">爬虫项目实战</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E9%80%86%E5%90%91/1.htm">逆向</a><a class="tag" taget="_blank" href="/search/%E5%8F%8D%E7%88%AC/1.htm">反爬</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a> <div>一、引言在当今数字化飞速发展的时代,互联网已深入到社会生活的各个层面,数据的流通与交互变得极为频繁。与此同时,数据安全问题日益成为人们关注的焦点。加密技术作为保障数据安全的核心手段,其重要性不言而喻。国密系列加密算法是我国自主研发的一套具有高安全性、高性能特点的加密标准,它为我国金融、政务、医疗等关键领域的数据安全提供了坚实的保障。对于爬虫逆向分析而言,随着网站对数据保护意识的增强,越来越多的网站</div> </li> <li><a href="/article/1901867423309557760.htm" title="Python 爬虫入门(六):urllib库的使用方法" target="_blank">Python 爬虫入门(六):urllib库的使用方法</a> <span class="text-muted">blues_C</span> <a class="tag" taget="_blank" href="/search/Python%E7%88%AC%E8%99%AB%E5%AE%9E%E6%88%98/1.htm">Python爬虫实战</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%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>Python爬虫入门(六):urllib库的使用方法前言1.urllib概述2.urllib.request模块2.1发送GET请求2.2发送POST请求2.3添加headers2.4处理异常3.urllib.error模块4.urllib.parse模块4.1URL解析4.2URL编码和解码4.3拼接URL5.urllib.robotparser模块6.实战示例:爬取豆瓣电影Top2507.ur</div> </li> <li><a href="/article/1901858593620160512.htm" title="网络爬虫【爬虫库urllib】" target="_blank">网络爬虫【爬虫库urllib】</a> <span class="text-muted">不三不四୭</span> <a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E7%88%AC%E8%99%AB/1.htm">网络爬虫</a> <div>我叫不三不四,很高兴见到大家,欢迎一起学习交流和进步今天来讲一讲爬虫urllib介绍Urllib是Python自带的标准库,无须安装,直接引用即可。Urllib是一个收集几个模块来使用URL的软件包,大致具备以下功能。●urllib.request:用于打开和读取URL。●urllib.error:包含提出的例外urllib.request。●urllib.parse:用于解析URL。●urlli</div> </li> <li><a href="/article/1901853797282541568.htm" title="最新计算机专业毕设论文选题大全基于BeautifulSoup的毕业设计详细题目100套优质毕设项目分享(源码+论文)✅" target="_blank">最新计算机专业毕设论文选题大全基于BeautifulSoup的毕业设计详细题目100套优质毕设项目分享(源码+论文)✅</a> <span class="text-muted">会写代码的羊</span> <a class="tag" taget="_blank" href="/search/%E6%AF%95%E8%AE%BE%E9%80%89%E9%A2%98/1.htm">毕设选题</a><a class="tag" taget="_blank" href="/search/%E8%AF%BE%E7%A8%8B%E8%AE%BE%E8%AE%A1/1.htm">课程设计</a><a class="tag" taget="_blank" href="/search/beautifulsoup/1.htm">beautifulsoup</a><a class="tag" taget="_blank" href="/search/%E6%AF%95%E4%B8%9A%E8%AE%BE%E8%AE%A1/1.htm">毕业设计</a><a class="tag" taget="_blank" href="/search/%E6%AF%95%E4%B8%9A%E8%AE%BE%E8%AE%A1%E9%A2%98%E7%9B%AE/1.htm">毕业设计题目</a><a class="tag" taget="_blank" href="/search/%E6%AF%95%E8%AE%BE%E9%A2%98%E7%9B%AE/1.htm">毕设题目</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E7%88%AC%E8%99%AB/1.htm">网络爬虫</a> <div>文章目录前言最新毕设选题(建议收藏起来)基于BeautifulSoup的毕业设计选题毕设作品推荐前言2025全新毕业设计项目博主介绍:✌全网粉丝10W+,CSDN全栈领域优质创作者,博客之星、掘金/华为云/阿里云等平台优质作者。技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、大数据、机器学习等设计与开发。主要内容:免费</div> </li> <li><a href="/article/1901632185836826624.htm" title="【python爬虫实战】——基于全国各城市快递网点的数据采集" target="_blank">【python爬虫实战】——基于全国各城市快递网点的数据采集</a> <span class="text-muted">小L工程师</span> <a class="tag" taget="_blank" href="/search/python%E7%88%AC%E8%99%AB%E5%AE%9E%E6%88%98/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/%E7%BD%91%E7%BB%9C%E7%88%AC%E8%99%AB/1.htm">网络爬虫</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/selenium/1.htm">selenium</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%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/1.htm">数据分析</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%8F%AF%E8%A7%86%E5%8C%96/1.htm">数据可视化</a> <div>一、项目背景随着电子商务的快速发展,快递行业成为了现代物流的重要组成部分。快递网点的分布和服务质量直接影响到用户的物流体验。为了更好地了解快递网点的分布情况、服务范围以及联系方式等信息,本项目通过爬虫技术从公开的快递信息网站上采集相关数据。‘>本文章中所有内容仅供学习交流使用,不用于其他任何目的,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!二、项目目的和意义本项目的主要目的是通</div> </li> <li><a href="/article/1901537753443659776.htm" title="用Java爬虫轻松获取微店店铺所有商品信息" target="_blank">用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/%E7%88%AC%E8%99%AB/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> <div>在当今电商蓬勃发展的时代,微店作为一个轻量级且功能强大的电商平台,吸引了众多商家和消费者。无论是进行市场调研、数据分析,还是寻找热门商品,获取微店店铺的所有商品信息都是一项极具价值的任务。然而,手动浏览和整理这些信息显然是低效且容易出错的。幸运的是,通过编写Java爬虫程序,我们可以高效地完成这一任务。本文将详细介绍如何利用Java爬虫获取微店店铺的所有商品信息。一、为什么选择Java爬虫?Jav</div> </li> <li><a href="/article/1901534851207589888.htm" title="open-webui使用searXNG插件连接自定义的联网搜索服务程序" target="_blank">open-webui使用searXNG插件连接自定义的联网搜索服务程序</a> <span class="text-muted">chinayeren</span> <a class="tag" taget="_blank" href="/search/%E6%95%99%E7%A8%8B/1.htm">教程</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/ai/1.htm">ai</a><a class="tag" taget="_blank" href="/search/llama/1.htm">llama</a><a class="tag" taget="_blank" href="/search/chatgpt/1.htm">chatgpt</a> <div>项目背景因为国内无法访问内置的一些免费搜索插件,安装完searXNG本地服务端后根据教程中连接始终无法连接,docker方案国内也无法使用的情况下,本地使用python写一个Flask服务程序使用爬虫技术提供联网搜索数据。下面是实现代码V1#!/usr/bin/python3#_*_coding:utf-8_*_##Copyright(C)2025-2025#@Title:这是一个模拟searXN</div> </li> <li><a href="/article/1901519091257110528.htm" title="GitHub图床" target="_blank">GitHub图床</a> <span class="text-muted">Thinking_calculus</span> <a class="tag" taget="_blank" href="/search/Linux/1.htm">Linux</a><a class="tag" taget="_blank" href="/search/github/1.htm">github</a> <div>GitHub之图床github当图床使用的方法了解了,最简单的、安全的方式是创建一个私有库,通过发起issue的方式把想要保存的图片放在issue区title中可以添加便于记忆的字段,虽然大概率以后不会用到,但如果需要时可以使用爬虫爬取issue保存下来,也便于查找之前还有些照片以仓库的形式同步在这个仓库中,但取url这个过程十分麻烦,不过如果是用于储存大量照片的话,使用仓库同步的方式可能不会差,</div> </li> <li><a href="/article/1901482784044675072.htm" title="python_学习爬虫遇到的第一个问题_urllib获取baidu首页源代码" target="_blank">python_学习爬虫遇到的第一个问题_urllib获取baidu首页源代码</a> <span class="text-muted">KJDETL</span> <a class="tag" taget="_blank" href="/search/python_%E7%88%AC%E8%99%AB/1.htm">python_爬虫</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a> <div>第一天学习爬虫,学习的是urllib的基本用法,通过urllib.request获取baidu首页源代码。#导入urllib所需要的库importurllib.request#左边自定义名称,右边是要访问的地址url='https://www.baidu.com/Index.htm'#左边自定义名称可以叫做响应,右边是通过urllib.request.urlopen方法向url发出请求respon</div> </li> <li><a href="/article/1901471183535140864.htm" title="在使用selenium进行爬虫时, add_experimental_optio(),add_argument()的用法" target="_blank">在使用selenium进行爬虫时, add_experimental_optio(),add_argument()的用法</a> <span class="text-muted">数据牧马人</span> <a class="tag" taget="_blank" href="/search/selenium/1.htm">selenium</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7/1.htm">测试工具</a> <div>driver.add_experimental_option('excludeSwitches',['enable-automation'])是在使用SeleniumWebDriver与浏览器交互时设置的一行代码。这行代码用于禁用浏览器中的自动化检测。具体来说,当你在使用SeleniumWebDriver与浏览器交互时,有些浏览器(例如GoogleChrome)可能会检测到自动化行为(例如,通过检</div> </li> <li><a href="/article/1901468155931324416.htm" title="Python 赋能经济趋势与股票研究:数据驱动的投资洞察" target="_blank">Python 赋能经济趋势与股票研究:数据驱动的投资洞察</a> <span class="text-muted">Small踢倒coffee_氕氘氚</span> <a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB/1.htm">经验分享</a> <div>在当今数据爆炸的时代,Python凭借其强大的数据处理能力和丰富的开源库,已成为经济趋势分析和股票研究的利器。本文将探讨如何利用Python进行以下方面的研究:**一、数据获取与清洗*****数据来源:*****财经数据API:**Tushare、AKShare、YahooFinance、AlphaVantage等提供丰富的股票、基金、宏观经济等数据。***网络爬虫:**使用BeautifulSo</div> </li> <li><a href="/article/1901466640223105024.htm" title="突破反爬终极指南:如何用Python实现100%隐形数据抓取(附实战代码)" target="_blank">突破反爬终极指南:如何用Python实现100%隐形数据抓取(附实战代码)</a> <span class="text-muted">煜bart</span> <a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E4%BA%BA/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><a class="tag" taget="_blank" href="/search/web3.py/1.htm">web3.py</a> <div>引言:当爬虫遭遇铜墙铁壁2023年Q2最新统计显示,全球Top100网站中89%部署了AI驱动的反爬系统,传统爬虫存活率暴跌至17%。本文将揭秘一套基于深度伪装技术的爬虫方案,在最近三个月实测中保持100%成功率,成功突破Cloudflare、Distil等顶级防护系统。---###一、指纹伪装:让爬虫"隐身"的核心科技####1.1浏览器指纹深度克隆(代码实现)```pythonfromsele</div> </li> <li><a href="/article/1901437649957220352.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/chrome/1.htm">chrome</a><a class="tag" taget="_blank" href="/search/%E4%BF%A1%E6%81%AF%E5%8F%AF%E8%A7%86%E5%8C%96/1.htm">信息可视化</a> <div>1.引言随着全球经济一体化,跨国交易和投资变得越来越普遍,实时汇率数据成为了金融领域和国际贸易中的关键数据。对于金融分析师、投资者或者是开发者来说,能够实时获取并分析汇率数据是至关重要的。本文将深入探讨如何使用Python爬虫技术抓取多个国家的实时汇率数据。我们将使用最新的技术和工具,介绍如何通过Python编写一个高效、可扩展的汇率数据爬虫。2.为什么需要实时汇率数据?汇率数据被广泛应用于以下几</div> </li> <li><a href="/article/1901434371966038016.htm" title="漫画算法python篇pdf_用Python抓取漫画并制作mobi格式电子书" target="_blank">漫画算法python篇pdf_用Python抓取漫画并制作mobi格式电子书</a> <span class="text-muted">jian bao</span> <a class="tag" taget="_blank" href="/search/%E6%BC%AB%E7%94%BB%E7%AE%97%E6%B3%95python%E7%AF%87pdf/1.htm">漫画算法python篇pdf</a> <div>想看某一部漫画,但是用手机看感觉屏幕太小,用电脑看吧有太不方面。正好有一部Kindle,决定写一个爬虫把漫画爬取下来,然后制作成mobi格式的电子书放到kindle里面看。本人对于Python学习创建了一个小小的学习圈子,为各位提供了一个平台,大家一起来讨论学习Python。欢迎各位到来Python学习群:943752371一起讨论视频分享学习。Python是未来的发展方向,正在挑战我们的分析能力</div> </li> <li><a href="/article/1901423654126809088.htm" title="python中beautifulsoup怎么安装_Python3爬虫中Beautiful Soup库的安装方法是什么" target="_blank">python中beautifulsoup怎么安装_Python3爬虫中Beautiful Soup库的安装方法是什么</a> <span class="text-muted">柳虎璐</span> <a class="tag" taget="_blank" href="/search/Python3/1.htm">Python3</a><a class="tag" taget="_blank" href="/search/BeautifulSoup/1.htm">BeautifulSoup</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B/1.htm">安装教程</a><a class="tag" taget="_blank" href="/search/lxml/1.htm">lxml</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a> <div>Python3爬虫中BeautifulSoup库的安装方法是什么发布时间:2020-08-0517:38:09来源:亿速云阅读:70作者:小新这篇文章将为大家详细讲解有关Python3爬虫中BeautifulSoup库的安装方法是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。BeautifulSoup是Python的一个HTML或XML的解析库,我们可以用它</div> </li> <li><a href="/article/1901365386767560704.htm" title="Python爬虫 -- re正则+csv存储" target="_blank">Python爬虫 -- re正则+csv存储</a> <span class="text-muted">小鞠..</span> <a class="tag" taget="_blank" href="/search/Python%E7%88%AC%E8%99%AB/1.htm">Python爬虫</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%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>爬取Boss上有关Python的工作。网址链接https://www.zhipin.com/wapi/zpgeek/search/joblist.json?scene=1&query=python&city=100010000&experience=&payType=&partTime=°ree=&industry=&scale=&stage=&position=&jobType=&sala</div> </li> <li><a href="/article/1901310657672835072.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/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/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/selenium/1.htm">selenium</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%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/beautifulsoup/1.htm">beautifulsoup</a> <div>一、引言在现代交通系统中,交通数据是进行智能交通管理、交通流量预测和交通规划的重要依据。高德地图(Amap)作为国内最权威的地理和交通信息平台之一,提供了丰富的开放API,允许开发者访问包括实时交通路况、路线规划、地理编码等各种数据。本教程将使用Python构建一个完整的爬虫程序,调用高德地图API,解析和存储交通数据,并通过数据分析和可视化深入挖掘交通流量特征。二、高德地图API简介2.1高德地</div> </li> <li><a href="/article/1901277492635824128.htm" title="Python爬虫|获取大麦网演出信息" target="_blank">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/%E7%88%AC%E8%99%AB/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> <div>使用Selenium库自动化浏览器操作,从大麦网的搜索结果页面抓取演唱会信息,并将这些信息保存到一个CSV文件中代码的主要步骤包括:1.初始化WebDriver。2.打开指定的URL。3.模拟点击“全部”按钮。4.循环抓取每一页的演唱会信息,并写入CSV文件。5.关闭WebDriver。代码拆分讲解1.导入相关库fromselenium.webdriver.supportimportexpecte</div> </li> <li><a href="/article/1901267535907581952.htm" title="Python常用10个模块详解:提升开发效率的利器" target="_blank">Python常用10个模块详解:提升开发效率的利器</a> <span class="text-muted">Python_trys</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/microsoft/1.htm">microsoft</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/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/Python%E5%85%A5%E9%97%A8/1.htm">Python入门</a><a class="tag" taget="_blank" href="/search/Python%E5%9F%BA%E7%A1%80/1.htm">Python基础</a><a class="tag" taget="_blank" href="/search/Python%E6%95%99%E7%A8%8B/1.htm">Python教程</a> <div>包含编程籽料、学习路线图、爬虫代码、安装包等!【点击领取!】Python作为一门功能强大且易于学习的编程语言,拥有丰富的标准库和第三方模块,能够帮助开发者快速实现各种功能。本文将详细介绍Python中常用的10个模块,帮助你在开发中更高效地完成任务。1.os模块:操作系统交互os模块提供了与操作系统交互的功能,包括文件操作、目录管理、环境变量等。常用功能:文件与目录操作:importos#获取当前</div> </li> <li><a href="/article/1901238165000220672.htm" title="Python-自定义装饰器" target="_blank">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/%E8%A3%85%E9%A5%B0%E5%99%A8/1.htm">装饰器</a> <div>什么是装饰器?装饰器本质是一个函数,它可以在不改变原来的函数的基础上额外的增加一些功能。如常见的@classmethod,@staticmethod等都是装饰器,接下来记录下如何自定义个装饰器:刚刚说过了,装饰器的本质就是一个函数,所有想要自定义一个装饰器,首先自定义一个函数defdecorate(func):defwrapper(*args,**kwargs):print("定义一个装饰器")f</div> </li> <li><a href="/article/1901236654300000256.htm" title="Python 爬虫体验心得:使用 requests 与 Spider 开启数据探索之旅" target="_blank">Python 爬虫体验心得:使用 requests 与 Spider 开启数据探索之旅</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/%E7%BD%91%E7%BB%9C%E7%88%AC%E8%99%AB/1.htm">网络爬虫</a> <div>一、引言在当今数字化信息爆炸的时代,互联网上蕴含着海量的数据资源。对于开发者、数据分析师等人群而言,如何高效地从网页中提取所需数据成为一项关键技能。Python凭借其丰富的第三方库和简洁易懂的语法,成为了开发网络爬虫的首选语言。其中,requests库为我们处理HTTP请求提供了便捷的方式,而Scrapy框架中的Spider则可以帮助我们构建复杂的爬虫逻辑。本文将带领大家逐步学习如何使用reque</div> </li> <li><a href="/article/1901228451285757952.htm" title="如何使用Jsoup提取商品信息:实战指南" target="_blank">如何使用Jsoup提取商品信息:实战指南</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/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>在使用Java进行Web爬虫开发时,Jsoup是一个非常强大的HTML解析库,可以帮助你轻松地提取网页中的数据。本文将详细介绍如何使用Jsoup提取商品信息,包括商品标题、价格、描述和图片链接等。一、环境准备(一)Java开发环境确保你的系统中已安装Java开发环境,推荐使用JDK11或更高版本。(二)安装所需库使用Maven管理项目依赖,主要包括以下库:Jsoup:用于解析HTML内容。在pom</div> </li> <li><a href="/article/1901228451973623808.htm" title="利用Java爬虫根据关键词获取商品列表:实战指南" target="_blank">利用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/%E7%88%AC%E8%99%AB/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> <div>在电商领域,通过关键词搜索商品并获取商品列表是常见的需求。本文将详细介绍如何使用Java编写爬虫程序,根据关键词获取商品列表,并确保爬虫行为符合平台规范。为了确保代码的准确性和实用性,我们将提供详细的代码示例和解释。一、环境准备(一)Java开发环境确保你的系统中已安装Java开发环境,推荐使用JDK11或更高版本。(二)安装所需库使用Maven管理项目依赖,主要包括以下库:Jsoup:用于解析H</div> </li> <li><a href="/article/1901218622773194752.htm" title="Android手机中各类安全相关知识总结" target="_blank">Android手机中各类安全相关知识总结</a> <span class="text-muted">数据知道</span> <a class="tag" taget="_blank" href="/search/2025%E5%B9%B4%E7%88%AC%E8%99%AB%E5%92%8C%E9%80%86%E5%90%91%E6%95%99%E7%A8%8B/1.htm">2025年爬虫和逆向教程</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/%E6%99%BA%E8%83%BD%E6%89%8B%E6%9C%BA/1.htm">智能手机</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a> <div>更多内容请见:爬虫和逆向教程-专栏介绍和目录文章目录1.Android安全威胁2.Android安全防护措施3.Android安全建议和最佳实践4.Android安全工具推荐5.Android安全常见问题5.1如何检测设备是否感染恶意软件?5.2如何防止应用滥用权限?5.3如何保护设备免受网络攻击?5.4设备丢失后如何保护数据?6.学习资源7.总结Android手机作为全球使用最广泛的移动操作系统</div> </li> <li><a href="/article/1901206396960043008.htm" title="1.1 网络爬虫简介" target="_blank">1.1 网络爬虫简介</a> <span class="text-muted">lwen.steven</span> <a class="tag" taget="_blank" href="/search/%E4%BB%8E%E5%A4%B4%E5%BC%80%E5%A7%8B%E5%AD%A6Java%E6%95%B0%E6%8D%AE%E9%87%87%E9%9B%86/1.htm">从头开始学Java数据采集</a> <div>随着互联网的迅速发展,网络数据资源呈爆发式增长,信息需求者如何从网络中提取信息变得更加重要。如今,有效地获取网络数据资源的方式,便是网络爬虫。网络爬虫又称为网络蜘蛛或者Web信息采集器,是一种按照指定规则,自动抓取或下载网络资源的计算机程序或自动化脚本。网络爬虫狭义上的理解:利用标准网络协议(如HTTP、HTTPS等),根据网络超链接和信息检索方法(如深度优先)遍历网络数据的软件程序。网络爬虫功能</div> </li> <li><a href="/article/1901178145940238336.htm" title="python-提示词对大模型推理有多重要?" target="_blank">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/%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B/1.htm">语言模型</a> <div>文章目录前言测试一个失败的提示词提示词内容knowledge内容提问的内容得到的回答说点啥能引导的提示词提示词内容knowledge内容提问的内容得到的回答说点啥结束语前言神级提示词一度成为AI圈的热搜,那么提示词对大模型推理到底有多重要?测试一个失败的提示词提示词内容基础知识:{knowledge};问题:{question};根据已知知识和基础知识回答问题knowledge内容{"商品名称":</div> </li> <li><a href="/article/1901012983962726400.htm" title="Python 爬取大量数据如何并发抓取与性能优化" target="_blank">Python 爬取大量数据如何并发抓取与性能优化</a> <span class="text-muted">chusheng1840</span> <a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/%E6%95%99%E7%A8%8B/1.htm">教程</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/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> <div>Python并发抓取与性能优化在进行网络爬虫开发时,爬取大量数据可能非常耗时。尤其是在处理许多网页或API请求时,逐个请求速度会非常慢。为了解决这个问题,我们可以通过并发抓取提高爬取效率。同时,通过性能优化来进一步减少耗时和资源占用,使爬虫更高效。本篇文章将带大家了解Python中常用的并发抓取方法,并介绍如何进行性能优化。1.并发抓取的基本概念并发抓取指的是同时发出多个请求的技术,而不是顺序地等</div> </li> <li><a href="/article/119.htm" title="Spring中@Value注解,需要注意的地方" target="_blank">Spring中@Value注解,需要注意的地方</a> <span class="text-muted">无量</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/bean/1.htm">bean</a><a class="tag" taget="_blank" href="/search/%40Value/1.htm">@Value</a><a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a> <div>Spring 3以后,支持@Value注解的方式获取properties文件中的配置值,简化了读取配置文件的复杂操作 1、在applicationContext.xml文件(或引用文件中)中配置properties文件 <bean id="appProperty" class="org.springframework.beans.fac</div> </li> <li><a href="/article/246.htm" title="mongoDB 分片" target="_blank">mongoDB 分片</a> <span class="text-muted">开窍的石头</span> <a class="tag" taget="_blank" href="/search/mongodb/1.htm">mongodb</a> <div>    mongoDB的分片。要mongos查询数据时候 先查询configsvr看数据在那台shard上,configsvr上边放的是metar信息,指的是那条数据在那个片上。由此可以看出mongo在做分片的时候咱们至少要有一个configsvr,和两个以上的shard(片)信息。     第一步启动两台以上的mongo服务 &nb</div> </li> <li><a href="/article/373.htm" title="OVER(PARTITION BY)函数用法" target="_blank">OVER(PARTITION BY)函数用法</a> <span class="text-muted">0624chenhong</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a> <div>这篇写得很好,引自 http://www.cnblogs.com/lanzi/archive/2010/10/26/1861338.html OVER(PARTITION BY)函数用法 2010年10月26日 OVER(PARTITION BY)函数介绍 开窗函数        &nb</div> </li> <li><a href="/article/500.htm" title="Android开发中,ADB server didn't ACK 解决方法" target="_blank">Android开发中,ADB server didn't ACK 解决方法</a> <span class="text-muted">一炮送你回车库</span> <a class="tag" taget="_blank" href="/search/Android%E5%BC%80%E5%8F%91/1.htm">Android开发</a> <div>首先通知:凡是安装360、豌豆荚、腾讯管家的全部卸载,然后再尝试。   一直没搞明白这个问题咋出现的,但今天看到一个方法,搞定了!原来是豌豆荚占用了 5037 端口导致。 参见原文章:一个豌豆荚引发的血案——关于ADB server didn't ACK的问题 简单来讲,首先将Windows任务进程中的豌豆荚干掉,如果还是不行,再继续按下列步骤排查。 &nb</div> </li> <li><a href="/article/627.htm" title="canvas中的像素绘制问题" target="_blank">canvas中的像素绘制问题</a> <span class="text-muted">换个号韩国红果果</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/canvas/1.htm">canvas</a> <div>pixl的绘制,1.如果绘制点正处于相邻像素交叉线,绘制x像素的线宽,则从交叉线分别向前向后绘制x/2个像素,如果x/2是整数,则刚好填满x个像素,如果是小数,则先把整数格填满,再去绘制剩下的小数部分,绘制时,是将小数部分的颜色用来除以一个像素的宽度,颜色会变淡。所以要用整数坐标来画的话(即绘制点正处于相邻像素交叉线时),线宽必须是2的整数倍。否则会出现不饱满的像素。 2.如果绘制点为一个像素的</div> </li> <li><a href="/article/754.htm" title="编码乱码问题" target="_blank">编码乱码问题</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/jvm/1.htm">jvm</a><a class="tag" taget="_blank" href="/search/jsp/1.htm">jsp</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A0%81/1.htm">编码</a> <div>1、JVM中单个字符占用的字节长度跟编码方式有关,而默认编码方式又跟平台是一一对应的或说平台决定了默认字符编码方式;2、对于单个字符:ISO-8859-1单字节编码,GBK双字节编码,UTF-8三字节编码;因此中文平台(中文平台默认字符集编码GBK)下一个中文字符占2个字节,而英文平台(英文平台默认字符集编码Cp1252(类似于ISO-8859-1))。 3、getBytes()、getByte</div> </li> <li><a href="/article/881.htm" title="java 求几个月后的日期" target="_blank">java 求几个月后的日期</a> <span class="text-muted">darkranger</span> <a class="tag" taget="_blank" href="/search/calendar/1.htm">calendar</a><a class="tag" taget="_blank" href="/search/getinstance/1.htm">getinstance</a> <div>Date plandate = planDate.toDate(); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); Calendar cal = Calendar.getInstance(); cal.setTime(plandate); // 取得三个月后时间 cal.add(Calendar.M</div> </li> <li><a href="/article/1008.htm" title="数据库设计的三大范式(通俗易懂)" target="_blank">数据库设计的三大范式(通俗易懂)</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93%E5%A4%8D%E4%B9%A0/1.htm">数据库复习</a> <div>关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式。数据库的设计范式是数据库设计所需要满足的规范。只有理解数据库的设计范式,才能设计出高效率、优雅的数据库,否则可能会设计出错误的数据库. 目前,主要有六种范式:第一范式、第二范式、第三范式、BC范式、第四范式和第五范式。满足最低要求的叫第一范式,简称1NF。在第一范式基础上进一步满足一些要求的为第二范式,简称2NF。其余依此类推。</div> </li> <li><a href="/article/1135.htm" title="想学工作流怎么入手" target="_blank">想学工作流怎么入手</a> <span class="text-muted">atongyeye</span> <a class="tag" taget="_blank" href="/search/jbpm/1.htm">jbpm</a> <div>工作流在工作中变得越来越重要,很多朋友想学工作流却不知如何入手。 很多朋友习惯性的这看一点,那了解一点,既不系统,也容易半途而废。好比学武功,最好的办法是有一本武功秘籍。研究明白,则犹如打通任督二脉。 系统学习工作流,很重要的一本书《JBPM工作流开发指南》。 本人苦苦学习两个月,基本上可以解决大部分流程问题。整理一下学习思路,有兴趣的朋友可以参考下。 1  首先要</div> </li> <li><a href="/article/1262.htm" title="Context和SQLiteOpenHelper创建数据库" target="_blank">Context和SQLiteOpenHelper创建数据库</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/Context%E5%88%9B%E5%BB%BA%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">Context创建数据库</a> <div>       一直以为安卓数据库的创建就是使用SQLiteOpenHelper创建,但是最近在android的一本书上看到了Context也可以创建数据库,下面我们一起分析这两种方式创建数据库的方式和区别,重点在SQLiteOpenHelper     一:SQLiteOpenHelper创建数据库:   1,SQLi</div> </li> <li><a href="/article/1389.htm" title="浅谈group by和distinct" target="_blank">浅谈group by和distinct</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/group+by/1.htm">group by</a><a class="tag" taget="_blank" href="/search/distinct/1.htm">distinct</a> <div>        group by和distinct只了去重意义一样,但是group by应用范围更广泛些,如分组汇总或者从聚合函数里筛选数据等。         譬如:统计每id数并且只显示数大于3 select id ,count(id) from ta</div> </li> <li><a href="/article/1516.htm" title="vi opertion" target="_blank">vi opertion</a> <span class="text-muted">征客丶</span> <a class="tag" taget="_blank" href="/search/mac/1.htm">mac</a><a class="tag" taget="_blank" href="/search/opration/1.htm">opration</a><a class="tag" taget="_blank" href="/search/vi/1.htm">vi</a> <div>进入 command mode (命令行模式) 按 esc 键 再按 shift + 冒号 注:以下命令中 带 $ 【在命令行模式下进行】,不带 $ 【在非命令行模式下进行】 一、文件操作 1.1、强制退出不保存 $ q! 1.2、保存 $ w 1.3、保存并退出 $ wq 1.4、刷新或重新加载已打开的文件 $ e 二、光标移动 2.1、跳到指定行 数字</div> </li> <li><a href="/article/1643.htm" title="【Spark十四】深入Spark RDD第三部分RDD基本API" target="_blank">【Spark十四】深入Spark RDD第三部分RDD基本API</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/spark/1.htm">spark</a> <div>  对于K/V类型的RDD,如下操作是什么含义?   val rdd = sc.parallelize(List(("A",3),("C",6),("A",1),("B",5)) rdd.reduceByKey(_+_).collect  reduceByKey在这里的操作,是把</div> </li> <li><a href="/article/1770.htm" title="java类加载机制" target="_blank">java类加载机制</a> <span class="text-muted">BlueSkator</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E8%99%9A%E6%8B%9F%E6%9C%BA/1.htm">虚拟机</a> <div>java类加载机制 1.java类加载器的树状结构 引导类加载器 ^ | 扩展类加载器 ^ | 系统类加载器 java使用代理模式来完成类加载,java的类加载器也有类似于继承的关系,引导类是最顶层的加载器,它是所有类的根加载器,它负责加载java核心库。当一个类加载器接到装载类到虚拟机的请求时,通常会代理给父类加载器,若已经是根加载器了,就自己完成加载。 虚拟机区分一个Cla</div> </li> <li><a href="/article/1897.htm" title="动态添加文本框" target="_blank">动态添加文本框</a> <span class="text-muted">BreakingBad</span> <a class="tag" taget="_blank" href="/search/%E6%96%87%E6%9C%AC%E6%A1%86/1.htm">文本框</a> <div>  <script>     var num=1; function AddInput() {      var str="";     str+="<input </div> </li> <li><a href="/article/2024.htm" title="读《研磨设计模式》-代码笔记-单例模式" target="_blank">读《研磨设计模式》-代码笔记-单例模式</a> <span class="text-muted">bylijinnan</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> <div>声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/ public class Singleton { } /* * 懒汉模式。注意,getInstance如果在多线程环境中调用,需要加上synchronized,否则存在线程不安全问题 */ class LazySingleton</div> </li> <li><a href="/article/2151.htm" title="iOS应用打包发布常见问题" target="_blank">iOS应用打包发布常见问题</a> <span class="text-muted">chenhbc</span> <a class="tag" taget="_blank" href="/search/ios/1.htm">ios</a><a class="tag" taget="_blank" href="/search/iOS%E5%8F%91%E5%B8%83/1.htm">iOS发布</a><a class="tag" taget="_blank" href="/search/iOS%E4%B8%8A%E4%BC%A0/1.htm">iOS上传</a><a class="tag" taget="_blank" href="/search/iOS%E6%89%93%E5%8C%85/1.htm">iOS打包</a> <div>这个月公司安排我一个人做iOS客户端开发,由于急着用,我先发布一个版本,由于第一次发布iOS应用,期间出了不少问题,记录于此。   1、使用Application Loader 发布时报错:Communication error.please use diagnostic mode to check connectivity.you need to have outbound acc</div> </li> <li><a href="/article/2278.htm" title="工作流复杂拓扑结构处理新思路" target="_blank">工作流复杂拓扑结构处理新思路</a> <span class="text-muted">comsci</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/%E5%B7%A5%E4%BD%9C/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%BC%81%E4%B8%9A%E5%BA%94%E7%94%A8/1.htm">企业应用</a><a class="tag" taget="_blank" href="/search/OO/1.htm">OO</a> <div> 我们走的设计路线和国外的产品不太一样,不一样在哪里呢?  国外的流程的设计思路是通过事先定义一整套规则(类似XPDL)来约束和控制流程图的复杂度(我对国外的产品了解不够多,仅仅是在有限的了解程度上面提出这样的看法),从而避免在流程引擎中处理这些复杂的图的问题,而我们却没有通过事先定义这样的复杂的规则来约束和降低用户自定义流程图的灵活性,这样一来,在引擎和流程流转控制这一个层面就会遇到很</div> </li> <li><a href="/article/2405.htm" title="oracle 11g新特性Flashback data archive" target="_blank">oracle 11g新特性Flashback data archive</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a> <div>1. 什么是flashback data archive Flashback data archive是oracle 11g中引入的一个新特性。Flashback archive是一个新的数据库对象,用于存储一个或多表的历史数据。Flashback archive是一个逻辑对象,概念上类似于表空间。实际上flashback archive可以看作是存储一个或多个表的所有事务变化的逻辑空间。 </div> </li> <li><a href="/article/2532.htm" title="多叉树:2-3-4树" target="_blank">多叉树:2-3-4树</a> <span class="text-muted">dieslrae</span> <a class="tag" taget="_blank" href="/search/%E6%A0%91/1.htm">树</a> <div>    平衡树多叉树,每个节点最多有4个子节点和3个数据项,2,3,4的含义是指一个节点可能含有的子节点的个数,效率比红黑树稍差.一般不允许出现重复关键字值.2-3-4树有以下特征:     1、有一个数据项的节点总是有2个子节点(称为2-节点)     2、有两个数据项的节点总是有3个子节点(称为3-节</div> </li> <li><a href="/article/2659.htm" title="C语言学习七动态分配 malloc的使用" target="_blank">C语言学习七动态分配 malloc的使用</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/c/1.htm">c</a><a class="tag" taget="_blank" href="/search/language/1.htm">language</a><a class="tag" taget="_blank" href="/search/malloc/1.htm">malloc</a> <div>/* 2013年3月15日15:16:24 malloc 就memory(内存) allocate(分配)的缩写 本程序没有实际含义,只是理解使用 */ # include <stdio.h> # include <malloc.h> int main(void) { int i = 5; //分配了4个字节 静态分配 int * p </div> </li> <li><a href="/article/2786.htm" title="Objective-C编码规范[译]" target="_blank">Objective-C编码规范[译]</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/%E4%BB%A3%E7%A0%81%E8%A7%84%E8%8C%83/1.htm">代码规范</a> <div>  原文链接 : The official raywenderlich.com Objective-C style guide 原文作者 : raywenderlich.com Team 译文出自 : raywenderlich.com Objective-C编码规范 译者 : Sam Lau </div> </li> <li><a href="/article/2913.htm" title="0.性能优化-目录" target="_blank">0.性能优化-目录</a> <span class="text-muted">frank1234</span> <a class="tag" taget="_blank" href="/search/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/1.htm">性能优化</a> <div>从今天开始笔者陆续发表一些性能测试相关的文章,主要是对自己前段时间学习的总结,由于水平有限,性能测试领域很深,本人理解的也比较浅,欢迎各位大咖批评指正。 主要内容包括: 一、性能测试指标 吞吐量、TPS、响应时间、负载、可扩展性、PV、思考时间 http://frank1234.iteye.com/blog/2180305 二、性能测试策略 生产环境相同 基准测试 预热等 htt</div> </li> <li><a href="/article/3040.htm" title="Java父类取得子类传递的泛型参数Class类型" target="_blank">Java父类取得子类传递的泛型参数Class类型</a> <span class="text-muted">happyqing</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%B3%9B%E5%9E%8B/1.htm">泛型</a><a class="tag" taget="_blank" href="/search/%E7%88%B6%E7%B1%BB/1.htm">父类</a><a class="tag" taget="_blank" href="/search/%E5%AD%90%E7%B1%BB/1.htm">子类</a><a class="tag" taget="_blank" href="/search/Class/1.htm">Class</a> <div>  import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import org.junit.Test; abstract class BaseDao<T> { public void getType() { //Class<E> clazz =</div> </li> <li><a href="/article/3167.htm" title="跟我学SpringMVC目录汇总贴、PDF下载、源码下载" target="_blank">跟我学SpringMVC目录汇总贴、PDF下载、源码下载</a> <span class="text-muted">jinnianshilongnian</span> <a class="tag" taget="_blank" href="/search/springMVC/1.htm">springMVC</a> <div>  ----广告-------------------------------------------------------------- 网站核心商详页开发 掌握Java技术,掌握并发/异步工具使用,熟悉spring、ibatis框架; 掌握数据库技术,表设计和索引优化,分库分表/读写分离; 了解缓存技术,熟练使用如Redis/Memcached等主流技术; 了解Ngin</div> </li> <li><a href="/article/3294.htm" title="the HTTP rewrite module requires the PCRE library" target="_blank">the HTTP rewrite module requires the PCRE library</a> <span class="text-muted">流浪鱼</span> <a class="tag" taget="_blank" href="/search/rewrite/1.htm">rewrite</a> <div>./configure: error: the HTTP rewrite module requires the PCRE library. 模块依赖性Nginx需要依赖下面3个包 1. gzip 模块需要 zlib 库 ( 下载: http://www.zlib.net/ ) 2. rewrite 模块需要 pcre 库 ( 下载: http://www.pcre.org/ ) 3. s</div> </li> <li><a href="/article/3421.htm" title="第12章 Ajax(中)" target="_blank">第12章 Ajax(中)</a> <span class="text-muted">onestopweb</span> <a class="tag" taget="_blank" href="/search/Ajax/1.htm">Ajax</a> <div>index.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/</div> </li> <li><a href="/article/3548.htm" title="Optimize query with Query Stripping in Web Intelligence" target="_blank">Optimize query with Query Stripping in Web Intelligence</a> <span class="text-muted">blueoxygen</span> <a class="tag" taget="_blank" href="/search/BO/1.htm">BO</a> <div>http://wiki.sdn.sap.com/wiki/display/BOBJ/Optimize+query+with+Query+Stripping+in+Web+Intelligence and a very straightfoward video http://www.sdn.sap.com/irj/scn/events?rid=/library/uuid/40ec3a0c-936</div> </li> <li><a href="/article/3675.htm" title="Java开发者写SQL时常犯的10个错误" target="_blank">Java开发者写SQL时常犯的10个错误</a> <span class="text-muted">tomcat_oracle</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> <div>1、不用PreparedStatements   有意思的是,在JDBC出现了许多年后的今天,这个错误依然出现在博客、论坛和邮件列表中,即便要记住和理解它是一件很简单的事。开发者不使用PreparedStatements的原因可能有如下几个:   他们对PreparedStatements不了解   他们认为使用PreparedStatements太慢了   他们认为写Prepar</div> </li> <li><a href="/article/3802.htm" title="世纪互联与结盟有感" target="_blank">世纪互联与结盟有感</a> <span class="text-muted">阿尔萨斯</span> <div> 10月10日,世纪互联与(Foxcon)签约成立合资公司,有感。 全球电子制造业巨头(全球500强企业)与世纪互联共同看好IDC、云计算等业务在中国的增长空间,双方迅速果断出手,在资本层面上达成合作,此举体现了全球电子制造业巨头对世纪互联IDC业务的欣赏与信任,另一方面反映出世纪互联目前良好的运营状况与广阔的发展前景。 众所周知,精于电子产品制造(世界第一),对于世纪互联而言,能够与结盟</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>