python网络爬虫——BeautifulSoup模块

目录

1 解析器

2 对象的种类

(1)TAG

(2)BeautifulSoup

3 信息提取

(1)文档树搜索

(2) CSS选择器

(3) 与Urlopen结合


from bs4 import BeautifulSoup

soup  = BeautifulSoup(html,"html.parser")


1 解析器

python网络爬虫——BeautifulSoup模块_第1张图片

2 对象的种类

(1)TAG

Tag类型即节点,比如HTML中的a标签、p标签等等,

Tag                              标签<>                     soup.a

Name                         标签的名字

               soup.a.name      

Attributes                    标签的属性                     soup.a.attrs

NavigableString         标签内非属性字符串       soup.a.string

Comment                   标签内字符串的注释部分

#tag标签
def getHTMLTag(soup):
    print("1.1 title标签:"+str(soup.title))
    print("1.2 a标签:"+str(soup.a))
    print("  1.2.1 a标签的名字:"+str(soup.a.name))
    print("  1.2.2 a标签的属性:" + str(soup.a.attrs))
    print("       1) 获取a标签中的onclick属性"+str(soup.a['onclick'])+str(soup.a.get('onclick')))
    print("2.1 获取标签内部的文字:"+str(soup.a.string)+str(type(soup.a.string)))
    return

(2)BeautifulSoup

BeautifulSoup类型是整个文档的根形式,一种特殊的Tag类型,支持遍历文档树和搜索文档树的大部分方法,但是没有name和attrs属性。

</head><body> <p> ...</body></p> <p style="margin-left:0cm;">查找所有的节点:</p> <p style="margin-left:0cm;">       .contents               所有子节点存入列表</p> <p style="margin-left:0cm;">       .children                子节点</p> <p style="margin-left:0cm;">       .descendants        所有子孙节点 </p> <p style="margin-left:0cm;">       .parent                  显示父亲节点</p> <p style="margin-left:0cm;">       .parents                显示父辈节点</p> <p style="margin-left:0cm;">       .next_sibling         下一个平行节点</p> <p style="margin-left:0cm;">       .previous_sibling    上一个平行节点</p> <p style="margin-left:0cm;">       .next_siblings       后续所有平行节点</p> <p style="margin-left:0cm;">       .previous_siblings   前序所有平行节点</p> <pre><code>def getHTMLBeautifulSoup(soup): print("3. 介绍一下BeautifulSoup对象的使用。") print("查看body标签的父辈节点") for parent in soup.body.parents: if parent != None: print(parent.name) print("查看body前面的平行节点") for pre in soup.body.previous_siblings: if pre.name != None: print(pre.name) print("查看body的子节点的子节点") for des in soup.body.descendants: if des.name != None: print(des.name) return</code></pre> <p> </p> <h3 id="%EF%BC%883%EF%BC%89%E5%85%B6%E4%BB%96%E7%B1%BB%E5%9E%8B" style="margin-left:0cm;">(3)其他类型</h3> <p style="margin-left:0cm;"><strong>NavigableString</strong>用来表示标签里的文字,不是标签(有些函数可以操作和生成 NavigableString 对象,而不是标签对象)。</p> <p><strong>comment</strong>用来查找 HTML 文档的注释标签, <!-- 像这样 --></p> <h2 id="3%20%E4%BF%A1%E6%81%AF%E6%8F%90%E5%8F%96" style="margin-left:0cm;">3 信息提取</h2> <h3 id="%EF%BC%881%EF%BC%89%E6%96%87%E6%A1%A3%E6%A0%91%E6%90%9C%E7%B4%A2" style="margin-left:0cm;">(1)文档树搜索</h3> <p style="margin-left:0cm;"><strong> .find_all()和.find方法</strong></p> <p style="margin-left:0cm;">soup.find_all(name,attrs,recursive,string,**kwargs)// 函数返回的是一个列表类型</p> <p style="margin-left:0cm;">参数介绍:</p> <pre><code>name:对标签名称的检索字符串,返回一个列表类型。 attrs:对标签属性值的检索字符串,可以标注属性检索 例: soup.find_all("p","course") soup.find_all(id="link1") recursive:是否对子孙的全部检索,默认为True string:<>....</>中字符区域的检索字符串 例: soup.find_all(string="course") keyword:需要搜索的tag属性。 limit:设定需要查找的数量。</code></pre> <h3 id="(2)%20CSS%E9%80%89%E6%8B%A9%E5%99%A8" style="margin-left:0cm;"><strong>(2) CSS选择器</strong></h3> <p style="margin-left:0cm;">通过标签名查找  soup.select(‘title’)</p> <p style="margin-left:0cm;">通过类名查找     soup.select(‘.sister’)</p> <p style="margin-left:0cm;">通过 id 名查找    soup.select(‘#link1’)</p> <p style="margin-left:0cm;">组合查找            soup.select(‘p #link1’)                   查找 p 标签中,id 等于 link1的内容,二者需要用空格分开</p> <p style="margin-left:0cm;">属性查找           soup.select(‘a[class=”sister”]’)        属性和标签属于同一节点,所以中间不能加空格,否则会无法匹配到。</p> <h3 id="(3)%20%E4%B8%8EUrlopen%E7%BB%93%E5%90%88">(3) 与Urlopen结合</h3> <pre class="has"><code>from urllib.request import urlopen from urllib.error import HTTPError from bs4 import BeautifulSoup def getTitle(url): try: html = urlopen(url) except HTTPError as e: return None try: bsObj = BeautifulSoup(html.read(),"lxml") title = bsObj.body.h2 except AttributeError as e: return None return title title = getTitle("http://www.zuihaodaxue.com/BCSR/wangluokongjiananquan2018.html") if title == None: print("Title could not be found") else: print(title)</code></pre> <p> </p> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1706214457614610432"></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,python,网络)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1904074078029934592.htm" title="OpenCV 基础模块 Python 版" target="_blank">OpenCV 基础模块 Python 版</a> <span class="text-muted">ice_junjun</span> <a class="tag" taget="_blank" href="/search/OpenCV/1.htm">OpenCV</a><a class="tag" taget="_blank" href="/search/opencv/1.htm">opencv</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%A7%86%E8%A7%89/1.htm">计算机视觉</a> <div>OpenCV基础模块权威指南(Python版)一、模块全景图plaintextOpenCV架构(v4.x+)├─核心层│├─core:基础数据结构与操作(Mat/Scalar/Point)│└─imgproc:图像处理流水线(滤波→变换→检测)├─交互层│├─highgui:GUI与媒体I/O(显示/捕获/交互)│└─video:视频分析(运动检测/目标跟踪)├─3D视觉层│└─calib3d:相</div> </li> <li><a href="/article/1904073699984732160.htm" title="win32汇编环境,网络编程入门之十" target="_blank">win32汇编环境,网络编程入门之十</a> <span class="text-muted">一品人家</span> <a class="tag" taget="_blank" href="/search/win32%E6%B1%87%E7%BC%96%E7%BD%91%E7%BB%9C%E7%BC%96%E7%A8%8B%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B/1.htm">win32汇编网络编程入门教程</a><a class="tag" taget="_blank" href="/search/%E6%B1%87%E7%BC%96/1.htm">汇编</a> <div>;让我们继续上一教程的内容,上一教程里主要是应用WinHTTP的函数的基本应用;在这一教程里,我们将这些乱码就成可识的,同时研究一下如何读大容量的网页,比如超过1万字节的网页;win32汇编环境,网络编程入门之十;让我们继续上一教程的内容,上一教程里主要是应用WinHTTP的函数的基本应用;在这一教程里,我们将这些乱码就成可识的,同时研究一下如何读大容量的网页,比如超过1万字节的网页;>>>>>></div> </li> <li><a href="/article/1904072478037176320.htm" title="内网IP地址SSL证书申请指南" target="_blank">内网IP地址SSL证书申请指南</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a> <div>SSL/TLS证书是保障网站和服务安全的重要工具,能够加密数据传输并验证服务器身份。然而,对于局域网/内网IP地址而言,申请SSL证书的过程具有一定的特殊性,以下是一份详细的攻略:一、了解局域网/内网IP地址的特殊性唯一性问题:局域网/内网IP地址在内部网络中可能具有唯一性,但在整个互联网中并不唯一。访问限制:局域网/内网IP地址通常只能在内部网络中访问,无法从外部网络直接访问。二、选择证书颁发机</div> </li> <li><a href="/article/1904067899505569792.htm" title="ResNet改进(11):添加 Squeeze-and-Excitation模块和替换Mish激活函数" target="_blank">ResNet改进(11):添加 Squeeze-and-Excitation模块和替换Mish激活函数</a> <span class="text-muted">点我头像干啥</span> <a class="tag" taget="_blank" href="/search/ResNet/1.htm">ResNet</a><a class="tag" taget="_blank" href="/search/%E6%94%B9%E8%BF%9B%E3%80%90%E6%9C%89%E6%95%88%E6%B6%A8%E7%82%B9%EF%BC%81%E3%80%91/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><a class="tag" taget="_blank" href="/search/pytorch/1.htm">pytorch</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>本专栏代码均经过测试,可以直接替换项目中的模型,一键运行!采用最新的即插即用模块,有效涨点!!1.SE模块和Mish激活函数SE模块是一种通道注意力机制,旨在增强网络对重要特征通道的关注,从而提升模型的表达能力。它通过显式地建模通道之间的依赖关系,动态调整每个通道的特征响应。SE模块的核心思想:Squeeze:通过全局平均池化(GlobalAveragePooling,GAP)将每个通道的空间维度</div> </li> <li><a href="/article/1904066262028316672.htm" title="Python入门(函数)" target="_blank">Python入门(函数)</a> <span class="text-muted">高育良00003</span> <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>一.基础认识一种映射关系1.1什么是函数呢?概念函数是可以重复执行的语句块,可以重复调用作用用于封装语句块,提高代码的重用性1.2函数的定义语法:deffunction():#def为关键字,function为函数名#语句想要执行的操作returnre#re为返回值二.函数的调用函数名后+小括号()表示函数的执行2.1基本用法语法:函数名(实际调用的参数)2.2调用传参2.2.1位置传参最为常见,</div> </li> <li><a href="/article/1904063869286936576.htm" title="Java面试黄金宝典12" target="_blank">Java面试黄金宝典12</a> <span class="text-muted">ylfhpy</span> <a class="tag" taget="_blank" href="/search/Java%E9%9D%A2%E8%AF%95%E9%BB%84%E9%87%91%E5%AE%9D%E5%85%B8/1.htm">Java面试黄金宝典</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/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>1.什么是Java类加载机制定义Java类加载机制是Java程序运行时的关键环节,其作用是把类的字节码文件(.class文件)加载到Java虚拟机(JVM)中,并且将字节码文件转化为JVM能够识别的类对象。整个类加载过程主要包含加载、连接(验证、准备、解析)和初始化三个阶段。原理加载阶段:此阶段会通过类的全限定名来获取定义该类的二进制字节流。获取途径较为多样,既可以从本地文件系统读取,也能从网络下</div> </li> <li><a href="/article/1904063365370671104.htm" title="python本地连接minio" target="_blank">python本地连接minio</a> <span class="text-muted">伶星37</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/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a> <div>在你浏览器能成功访问到你的minio网页,并且成功登录之后。接下来如果你想用python连接数据库,并且想用python连接minio,就可以用这个blog。连接代码client=Minio("localhost:9000",#9000是默认端口号access_key="admin",#你的账户secret_key="password",#你的密码secure=False,#这点我会详细说明)为什</div> </li> <li><a href="/article/1904059708659003392.htm" title="逆向爬虫-筑基篇-第二层-壹-计算机网络和因特网-008" target="_blank">逆向爬虫-筑基篇-第二层-壹-计算机网络和因特网-008</a> <span class="text-muted">蓝花楹下</span> <a class="tag" taget="_blank" href="/search/%E9%80%86%E5%90%91%E7%88%AC%E8%99%AB/1.htm">逆向爬虫</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/1.htm">计算机网络</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a> <div>第二层网络初探计算机网络和因特网计算机网络与因特网之史分组交换之兴:1961-1972昔时,电话网为天下通信之主宰,其以电路交换之术,使语音恒速传于发收之间。然至20世纪60年代,计算机之重要日增,分时计算机亦现于世。彼时,智者思虑如何将计算机相连,使地理分布之用户共享其能。用户之流量,多具突发之性,如发一令于远机,继而静待其应,或思其答。当此之时,天下有三组智者,各自发明分组交换之术,以代电路交</div> </li> <li><a href="/article/1904059709204262912.htm" title="头歌实践教学平台 Python程序设计 实训答案(三)" target="_blank">头歌实践教学平台 Python程序设计 实训答案(三)</a> <span class="text-muted">学习的锅</span> <a class="tag" taget="_blank" href="/search/%E5%A4%B4%E5%93%A5%E5%AE%9E%E8%B7%B5%E6%95%99%E5%AD%A6%E5%B9%B3%E5%8F%B0%E5%AE%9E%E8%AE%AD%E7%AD%94%E6%A1%88/1.htm">头哥实践教学平台实训答案</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>第七阶段文件实验一文本文件的读取第1关:学习-Python文件之文本文件的读取任务描述本关任务:使用open函数以只写的方式打开文件,打印文件的打开方式。相关知识为了完成本关任务,你需要掌握:文本文件;open函数及其参数;文件打开模式;文件对象常用属性;关闭文件close函数。#请在下面的Begin-End之间按照注释中给出的提示编写正确的代码##########Begin###########</div> </li> <li><a href="/article/1904059330253090816.htm" title="Nginx多台服务器负载均衡" target="_blank">Nginx多台服务器负载均衡</a> <span class="text-muted">PS测</span> <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/nginx/1.htm">nginx</a><a class="tag" taget="_blank" href="/search/%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1/1.htm">负载均衡</a> <div>一操作步骤:1.服务器IP45.114.124.215//主服务器(安装Nginx)45.114.124.99//从服务器(安装Nginx或Apache都可以)2.保证2台服务器网络互通3.在2台服务器上设置不同页面方便验证3.1在主服务器添加一个可以访问的站点3.2在次服务器添加一个站点,端口必须是主服务器在nginx指定给次服务器的端口4.在主服务器45.114.124.215安装Nginx,</div> </li> <li><a href="/article/1904058570358452224.htm" title="python基础之--面相对象--OOP基本特性" target="_blank">python基础之--面相对象--OOP基本特性</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/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/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>python基础之–面相对象–OOP基本特性文章目录python基础之--面相对象--OOP基本特性一,OOP基本特性1.1封装1.2继承/派生1.2.1基础概念1.2.3继承实现1.3多态1.4对象对成员的操作(补充)1.5私有属性1.6重写魔术方法二,super函数2.1基本使用2.2super().\__init__()一,OOP基本特性OOP的四大基本特性是封装、继承、多态和抽象。1.1封</div> </li> <li><a href="/article/1904057811629830144.htm" title="Dify1.01版本vscode 本地环境搭建运行实践" target="_blank">Dify1.01版本vscode 本地环境搭建运行实践</a> <span class="text-muted">hamish-wu</span> <a class="tag" taget="_blank" href="/search/vscode/1.htm">vscode</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E8%BE%91%E5%99%A8/1.htm">编辑器</a><a class="tag" taget="_blank" href="/search/dify/1.htm">dify</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%A8%A1%E5%9E%8B/1.htm">大模型</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/flask/1.htm">flask</a> <div>dify是python编写的低代码AI开发平台,是常用的大模型开发平台。本文基于最新的1.0.1版本实践完成,有需要的可以私信交流。咨询免费,详细文档及视频需要一定成本,大概相当于节约的时间成本。搭建环境windows11开发工具vscode搭建步骤:1.Startthedocker-composestackwindow环境下运行docker命令,需要下载docker官网镜像,会遇到timeout</div> </li> <li><a href="/article/1904057813261414400.htm" title="vscode python 入门教程(一) window 10 环境下安装pyenv" target="_blank">vscode python 入门教程(一) window 10 环境下安装pyenv</a> <span class="text-muted">hamish-wu</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><a class="tag" taget="_blank" href="/search/pyenv/1.htm">pyenv</a> <div>python的环境配置方法很多,由于python有两个大版本,很多时候需要切换某个固定的版本才能运行三方包,所以推荐使用pyenv配置python环境变量pyenv的安装安装方法:Invoke-WebRequest-UseBasicParsing-Uri"https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/i</div> </li> <li><a href="/article/1904054529691807744.htm" title="1-5 Python 入门之运算符的使用" target="_blank">1-5 Python 入门之运算符的使用</a> <span class="text-muted">Sa_sa_ki_Haise</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>第1关:算术、比较、赋值运算符100任务要求参考答案评论201任务描述相关知识算术运算符比较(关系)运算符赋值运算符编程要求测试说明任务描述在编程时,我们常常需要对数值或对象进行算术、比较运算和赋值运算,以此来实现我们的功能需求。本关介绍Python中的一些基本运算符,并要求对给定的苹果和梨的数量进行算术运算、比较、赋值运算,然后输出相应的结果。相关知识要实现上述功能,需要用到Python中的各种</div> </li> <li><a href="/article/1904053897371119616.htm" title="2025年第二届机器学习与神经网络国际学术会议(MLNN 2025)" target="_blank">2025年第二届机器学习与神经网络国际学术会议(MLNN 2025)</a> <span class="text-muted">分享学术科研与论文的禁小默</span> <a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a><a class="tag" taget="_blank" href="/search/%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/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>重要信息官网:www.icmlnn.org时间:2025年4月22-24日地点:中国-重庆简介2025年第二届机器学习与神经网络国际学术会议(MLNN2025)围绕学习系统与神经网络的核心理论、关键技术和应用展开讨论,涵盖深度学习、计算机视觉、自然语言处理、强化学习等多个子领域,通过特邀报告、主题演讲、海报展示等形式,展示相关领域的最新研究成果和技术创新。征稿主题神经网络机器学习深度学习算法及应用</div> </li> <li><a href="/article/1904051756128595968.htm" title="rabbitmq + minio +python 上传文件" target="_blank">rabbitmq + minio +python 上传文件</a> <span class="text-muted">伶星37</span> <a class="tag" taget="_blank" href="/search/rabbitmq/1.htm">rabbitmq</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/ruby/1.htm">ruby</a> <div>功能实现RabbitMq接收hello里面传来的消息根据消息在MobileFile里面新建文件新建文件上传到miniopython新建文件importospath='./MobileFile'file_path=os.path.join(path,"new_file.txt")withopen(file_path,"w")asfile:pass转换成函数格式importosdefcreatefil</div> </li> <li><a href="/article/1904051376481169408.htm" title="vscode python 入门教程(二) vscode使用gti 管理代码" target="_blank">vscode python 入门教程(二) vscode使用gti 管理代码</a> <span class="text-muted">hamish-wu</span> <a class="tag" taget="_blank" href="/search/vscode/1.htm">vscode</a><a class="tag" taget="_blank" href="/search/ide/1.htm">ide</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E8%BE%91%E5%99%A8/1.htm">编辑器</a> <div>vscode代码管理需要用管道git的命令,这点和idea的代码管理区别比较大。作为java开发需要自己熟悉适应一下。一、GitHub新建一个仓库过程略二、本地git项目初始化gitinitvscode中可以看到文件状态gitstatus使用gitremote命令吧本地git仓库和远程git仓库链接起来gitremoteaddoraigngit@xxxx.git提交代码gitcommit-m"评论</div> </li> <li><a href="/article/1904050117074284544.htm" title="01.什么是MQTT?" target="_blank">01.什么是MQTT?</a> <span class="text-muted">墨先森</span> <a class="tag" taget="_blank" href="/search/NodeMCU%E4%B8%8EMQTT/1.htm">NodeMCU与MQTT</a><a class="tag" taget="_blank" href="/search/%E7%89%A9%E8%81%94%E7%BD%91/1.htm">物联网</a> <div>目录00_前言01_简述02_特性03_MQTT运行机制00_前言本系列博客是基于NodeMCU平台来完成的一个物联网小项目,目的在于了解并学习MQTT协议,掌握MQTT协议的作用机制。以上。01_简述以下摘自百度百科MQTT(消息队列遥测传输)是ISO标准(ISO/IECPRF20922)下基于发布/订阅范式的消息协议。它工作在TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情</div> </li> <li><a href="/article/1904048730009563136.htm" title="TCP和MQTT通信协议" target="_blank">TCP和MQTT通信协议</a> <span class="text-muted">御风_21</span> <a class="tag" taget="_blank" href="/search/%E7%89%A9%E8%81%94%E7%BD%91%E5%88%86%E4%BA%AB%E7%AF%87/1.htm">物联网分享篇</a><a class="tag" taget="_blank" href="/search/tcp%2Fip/1.htm">tcp/ip</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</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%E5%8D%8F%E8%AE%AE/1.htm">网络协议</a> <div>协议分层网络分层协议应用层CoAPMQTTHTTP传输层UDPTCP网络层IP链路层Enternet网络分层中最常见的几种协议应用层:应用程序负责将数据以相应规则(协议)进行包装,发给传输层MQTT:消息队列遥测传输CoAP:受限应用协议HTTP:超文本传输协议传输层:负责将应用层传输过来的数组进行分组,为确保终端接收数据的顺序和完整性,会对每个分组进行标记,交给网络层TCP:传输控制协议UDP:</div> </li> <li><a href="/article/1904047218374012928.htm" title="Python进阶之-加密库cryptography使用详解" target="_blank">Python进阶之-加密库cryptography使用详解</a> <span class="text-muted">夏天Aileft</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/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E5%8A%A0%E5%AF%86/1.htm">加密</a> <div>✨前言cryptography库是一个强大的Python加密库,提供了对加密算法和协议的高层和低层访问。它是用来实现数据加密、签名、密钥管理等功能的。以下是一些常见用法的详解,帮助你理解如何使用这个库。✨安装首先,你需要确保安装了cryptography库:pipinstallcryptography✨1.对称加密对称加密是指加密和解密使用相同的密钥。Fernet是cryptography库中提供</div> </li> <li><a href="/article/1904046588595073024.htm" title="python列表添加元素的三种方法定义集合数据对象_python 学习第三天 可迭代对象(列表,字典,元组和集合)..." target="_blank">python列表添加元素的三种方法定义集合数据对象_python 学习第三天 可迭代对象(列表,字典,元组和集合)...</a> <span class="text-muted">weixin_39852491</span> <div>列表,字典,元组和集合列表list列表是由一系列特定元素组成的,元素和元素之间没有任何关联关系,但他们之间有先后顺序关系列表是一种容器列表是序列的一种列表是可以被改变的序列Python中的序列类型简介(sequence)字符串(str)列表(list)元组(tuple)字节串(bytes)字节数组(bytearray)创建空列表的字面值L=[]#L绑定空列表创建非空列表:L=[1,’two’,3,</div> </li> <li><a href="/article/1904045707292110848.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%E9%9B%86%E5%90%88%E8%AF%A6%E8%A7%A3/1.htm">python集合详解</a><a class="tag" taget="_blank" href="/search/set%E9%9B%86%E5%90%88/1.htm">set集合</a> <div>集合的基本操作首先需要明确的是:集合(set)是一个无序的不重复元素序列,多用来进行排重;不支持切片和索引取值!1.创建集合>>>a={1,2,4,4}>>>a{1,2,4}>>>type(a)**创建空集合时需要注意:不能直接用大括号,只能用set();否则创建的是一个字典>>>b=set()>>>type(b)>>>c={}>>>type(c)2.添加元素add()方法是将要添加的元素作为一个</div> </li> <li><a href="/article/1904044697244987392.htm" title="Python密码学:cryptography库" target="_blank">Python密码学:cryptography库</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%AF%86%E7%A0%81%E5%AD%A6/1.htm">密码学</a> <div>在数字时代,确保数据的安全性和隐私至关重要。Python中的cryptography库是一个全面的包,为Python开发者提供了密码学原语和配方。它支持高级配方和常见密码学算法的低级接口。cryptography库概述cryptography库旨在易于使用且默认安全。它包括各种密码学操作的高级和低级API,如:对称加密非对称加密哈希函数消息认证码(MAC)数字签名密钥管理cryptography库</div> </li> <li><a href="/article/1904044192745713664.htm" title="网安会有35岁中年危机吗,还有网安将来发展怎么样?网络安全工程师可以干到多大年龄" target="_blank">网安会有35岁中年危机吗,还有网安将来发展怎么样?网络安全工程师可以干到多大年龄</a> <span class="text-muted">认真写程序的强哥</span> <a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/%E5%B9%B2%E8%B4%A7%E5%88%86%E4%BA%AB/1.htm">干货分享</a><a class="tag" taget="_blank" href="/search/%E9%BB%91%E5%AE%A2%E6%8A%80%E6%9C%AF/1.htm">黑客技术</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95/1.htm">渗透测试</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/1.htm">编程</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA/1.htm">计算机</a> <div>关于35岁中年危机这个问题,我想说,在网安行业里,这根本就不是个事儿!!与传统的IT行业不同,网安行业更加注重实战经验和技能深度,而不是单一的年龄因素。随着经验的积累,网络安全工程师在面对复杂问题时,反应更快、决策更准,这种价值是无法用年龄来衡量的。所以,只要你保持学习热情,不断提升自己的技能,35岁不仅不是终点,反而可能是你职业生涯的新起点。初入计算机行业的人或者想转行大学计算机相关专业准程序员</div> </li> <li><a href="/article/1904043688774922240.htm" title="Python---frozenset集合" target="_blank">Python---frozenset集合</a> <span class="text-muted">爱听雨声的北方汉</span> <a class="tag" taget="_blank" href="/search/%E5%BF%AB%E5%BF%AB%E4%B9%90%E4%B9%90%E5%AD%A6Python/1.htm">快快乐乐学Python</a><a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a> <div>frozenset是set的不可变版本,因此set集合中所有能改变集合本身的方法(如add、remove、discard、xxx_update等),frozenset都不支持;set集合中不改变集合本身的方法,fronzenset都支持。frozenset的作用主要有以下两点:1、当集合元素不需要改变时,使用frozenset代替set更安全。2、当某些API需要不可变对象时,必须用frozens</div> </li> <li><a href="/article/1904042931728216064.htm" title="(python)保障信息安全的加密库-cryptography" target="_blank">(python)保障信息安全的加密库-cryptography</a> <span class="text-muted">Marst·Zhang</span> <a class="tag" taget="_blank" href="/search/%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/1.htm">基础知识</a><a class="tag" taget="_blank" href="/search/%E5%AE%9E%E7%94%A8%E5%B7%A5%E5%85%B7/1.htm">实用工具</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>前言cryptography是一个广泛使用的Python加密库,提供了各种加密、哈希和签名算法的实现。它支持多种加密算法,如AES、RSA、ECC等,以及哈希函数(如SHA-256、SHA-384等)和数字签名算法(如DSA、ECDSA等).目录常见用途密码学函数主要功能优点缺点总结常见用途数据加密使用对称加密算法(如AES)对数据进行加密,确保数据在传输或存储过程中的机密性。数字签名生成和验证数</div> </li> <li><a href="/article/1904042678585192448.htm" title="Python if-else对缩进的要求" target="_blank">Python if-else对缩进的要求</a> <span class="text-muted">宇寒风暖</span> <a class="tag" taget="_blank" href="/search/python%E7%BC%96%E7%A8%8B/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/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a> <div>在Python中,缩进是语法的一部分,用于表示代码块的层次结构。if-else语句的代码块必须通过缩进来定义,缩进不正确会导致语法错误或逻辑错误。1.缩进的基本规则1.1缩进的作用缩进用于表示代码块的层次结构。同一代码块中的语句必须具有相同的缩进级别。缩进通常使用4个空格,这是Python官方推荐的风格。1.2示例x=10ifx>5:print("x大于5")#缩进4个空格print("这是if代</div> </li> <li><a href="/article/1904042679369527296.htm" title="一文弄懂 Python assert 断言" target="_blank">一文弄懂 Python assert 断言</a> <span class="text-muted">宇寒风暖</span> <a class="tag" taget="_blank" href="/search/python%E7%BC%96%E7%A8%8B/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/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a> <div>在Python中,assert是一种用于调试的语句,用于检查某个条件是否为True。如果条件为False,assert会抛出AssertionError异常,并可选地输出错误信息。assert通常用于在开发阶段验证程序的假设条件,确保代码的正确性。1.assert的基本语法1.1语法assertcondition,messagecondition:需要检查的条件表达式。message:可选参数,当</div> </li> <li><a href="/article/1904040536235372544.htm" title="开源项目常见问题解决方案——cryptography" target="_blank">开源项目常见问题解决方案——cryptography</a> <span class="text-muted">周屹隽</span> <div>开源项目常见问题解决方案——cryptographycryptographycryptographyisapackagedesignedtoexposecryptographicprimitivesandrecipestoPythondevelopers.项目地址:https://gitcode.com/gh_mirrors/cr/cryptography项目基础介绍cryptography是一个</div> </li> <li><a href="/article/1904039779566153728.htm" title="python 利用pandas实现从CSV导出并格式化后写入.jsonl文件" target="_blank">python 利用pandas实现从CSV导出并格式化后写入.jsonl文件</a> <span class="text-muted">风_流沙</span> <a class="tag" taget="_blank" href="/search/python%E5%B7%A5%E5%85%B7%E5%A4%87%E5%BF%98%E5%BD%95/1.htm">python工具备忘录</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/pandas/1.htm">pandas</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>你可以使用pandas库来读取CSV文件,然后通过一些格式化操作将数据转换为JSONL格式并写入文件。JSONL(JSONLines)格式是一种每行一个JSON对象的文件格式。下面是一个示例,演示了如何使用pandas读取CSV文件,处理数据并将其导出到JSONL文件中:示例代码:importpandasaspdimportjson#读取CSV文件df=pd.read_csv('data.csv'</div> </li> <li><a href="/article/12.htm" title="eclipse maven" target="_blank">eclipse maven</a> <span class="text-muted">IXHONG</span> <a class="tag" taget="_blank" href="/search/eclipse/1.htm">eclipse</a> <div>eclipse中使用maven插件的时候,运行run as maven build的时候报错 -Dmaven.multiModuleProjectDirectory system propery is not set. Check $M2_HOME environment variable and mvn script match.   可以设一个环境变量M2_HOME指</div> </li> <li><a href="/article/139.htm" title="timer cancel方法的一个小实例" target="_blank">timer cancel方法的一个小实例</a> <span class="text-muted">alleni123</span> <a class="tag" taget="_blank" href="/search/%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">多线程</a><a class="tag" taget="_blank" href="/search/timer/1.htm">timer</a> <div>package com.lj.timer; import java.util.Date; import java.util.Timer; import java.util.TimerTask; public class MyTimer extends TimerTask { private int a; private Timer timer; pub</div> </li> <li><a href="/article/266.htm" title="MySQL数据库在Linux下的安装" target="_blank">MySQL数据库在Linux下的安装</a> <span class="text-muted">ducklsl</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a> <div>1.建好一个专门放置MySQL的目录 /mysql/db数据库目录 /mysql/data数据库数据文件目录 2.配置用户,添加专门的MySQL管理用户 >groupadd mysql ----添加用户组 >useradd -g mysql mysql ----在mysql用户组中添加一个mysql用户 3.配置,生成并安装MySQL >cmake -D</div> </li> <li><a href="/article/393.htm" title="spring------>>cvc-elt.1: Cannot find the declaration of element" target="_blank">spring------>>cvc-elt.1: Cannot find the declaration of element</a> <span class="text-muted">Array_06</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> <div>将-------- <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"     xmlns:xsi="http://www.w3</div> </li> <li><a href="/article/520.htm" title="maven发布第三方jar的一些问题" target="_blank">maven发布第三方jar的一些问题</a> <span class="text-muted">cugfy</span> <a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a> <div>maven中发布 第三方jar到nexus仓库使用的是 deploy:deploy-file命令 有许多参数,具体可查看 http://maven.apache.org/plugins/maven-deploy-plugin/deploy-file-mojo.html 以下是一个例子: mvn  deploy:deploy-file -DgroupId=xpp3 </div> </li> <li><a href="/article/647.htm" title="MYSQL下载及安装" target="_blank">MYSQL下载及安装</a> <span class="text-muted">357029540</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a> <div>    好久没有去安装过MYSQL,今天自己在安装完MYSQL过后用navicat for mysql去厕测试链接的时候出现了10061的问题,因为的的MYSQL是最新版本为5.6.24,所以下载的文件夹里没有my.ini文件,所以在网上找了很多方法还是没有找到怎么解决问题,最后看到了一篇百度经验里有这个的介绍,按照其步骤也完成了安装,在这里给大家分享下这个链接的地址</div> </li> <li><a href="/article/774.htm" title="ios TableView cell的布局" target="_blank">ios TableView cell的布局</a> <span class="text-muted">张亚雄</span> <a class="tag" taget="_blank" href="/search/tableview/1.htm">tableview</a> <div>  cell.imageView.image = [UIImage imageNamed:[imageArray objectAtIndex:[indexPath row]]];           CGSize itemSize = CGSizeMake(60, 50);   &nbs</div> </li> <li><a href="/article/901.htm" title="Java编码转义" target="_blank">Java编码转义</a> <span class="text-muted">adminjun</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A0%81%E8%BD%AC%E4%B9%89/1.htm">编码转义</a> <div> import java.io.UnsupportedEncodingException; /** * 转换字符串的编码 */ public class ChangeCharset { /** 7位ASCII字符,也叫作ISO646-US、Unicode字符集的基本拉丁块 */ public static final Strin</div> </li> <li><a href="/article/1028.htm" title="Tomcat 配置和spring" target="_blank">Tomcat 配置和spring</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a> <div>简介 Tomcat启动时,先找系统变量CATALINA_BASE,如果没有,则找CATALINA_HOME。然后找这个变量所指的目录下的conf文件夹,从中读取配置文件。最重要的配置文件:server.xml 。要配置tomcat,基本上了解server.xml,context.xml和web.xml。 Server.xml --  tomcat主</div> </li> <li><a href="/article/1155.htm" title="Java打印当前目录下的所有子目录和文件" target="_blank">Java打印当前目录下的所有子目录和文件</a> <span class="text-muted">ayaoxinchao</span> <a class="tag" taget="_blank" href="/search/%E9%80%92%E5%BD%92/1.htm">递归</a><a class="tag" taget="_blank" href="/search/File/1.htm">File</a> <div>其实这个没啥技术含量,大湿们不要操笑哦,只是做一个简单的记录,简单用了一下递归算法。   import java.io.File; /** * @author Perlin * @date 2014-6-30 */ public class PrintDirectory { public static void printDirectory(File f</div> </li> <li><a href="/article/1282.htm" title="linux安装mysql出现libs报冲突解决" target="_blank">linux安装mysql出现libs报冲突解决</a> <span class="text-muted">BigBird2012</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>linux安装mysql出现libs报冲突解决 安装mysql出现 file /usr/share/mysql/ukrainian/errmsg.sys from install of MySQL-server-5.5.33-1.linux2.6.i386 conflicts with file from package mysql-libs-5.1.61-4.el6.i686  </div> </li> <li><a href="/article/1409.htm" title="jedis连接池使用实例" target="_blank">jedis连接池使用实例</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a><a class="tag" taget="_blank" href="/search/jedis%E8%BF%9E%E6%8E%A5%E6%B1%A0/1.htm">jedis连接池</a><a class="tag" taget="_blank" href="/search/jedis/1.htm">jedis</a> <div>实例代码: package com.bijian.study; import java.util.ArrayList; import java.util.List; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoo</div> </li> <li><a href="/article/1536.htm" title="关于朋友" target="_blank">关于朋友</a> <span class="text-muted">bingyingao</span> <a class="tag" taget="_blank" href="/search/%E6%9C%8B%E5%8F%8B/1.htm">朋友</a><a class="tag" taget="_blank" href="/search/%E5%85%B4%E8%B6%A3%E7%88%B1%E5%A5%BD/1.htm">兴趣爱好</a><a class="tag" taget="_blank" href="/search/%E7%BB%B4%E6%8C%81/1.htm">维持</a> <div>  成为朋友的必要条件:    志相同,道不合,可以成为朋友。譬如马云、周星驰一个是商人,一个是影星,可谓道不同,但都很有梦想,都要在各自领域里做到最好,当他们遇到一起,互相欣赏,可以畅谈两个小时。     志不同,道相合,也可以成为朋友。譬如有时候看到两个一个成绩很好每次考试争做第一,一个成绩很差的同学是好朋友。他们志向不相同,但他</div> </li> <li><a href="/article/1663.htm" title="【Spark七十九】Spark RDD API一" target="_blank">【Spark七十九】Spark RDD API一</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/spark/1.htm">spark</a> <div>aggregate package spark.examples.rddapi import org.apache.spark.{SparkConf, SparkContext} //测试RDD的aggregate方法 object AggregateTest { def main(args: Array[String]) { val conf = new Spar</div> </li> <li><a href="/article/1790.htm" title="ktap 0.1 released" target="_blank">ktap 0.1 released</a> <span class="text-muted">bookjovi</span> <a class="tag" taget="_blank" href="/search/kernel/1.htm">kernel</a><a class="tag" taget="_blank" href="/search/tracing/1.htm">tracing</a> <div>Dear, I'm pleased to announce that ktap release v0.1, this is the first official release of ktap project, it is expected that this release is not fully functional or very stable and we welcome bu</div> </li> <li><a href="/article/1917.htm" title="能保存Properties文件注释的Properties工具类" target="_blank">能保存Properties文件注释的Properties工具类</a> <span class="text-muted">BrokenDreams</span> <a class="tag" taget="_blank" href="/search/properties/1.htm">properties</a> <div>        今天遇到一个小需求:由于java.util.Properties读取属性文件时会忽略注释,当写回去的时候,注释都没了。恰好一个项目中的配置文件会在部署后被某个Java程序修改一下,但修改了之后注释全没了,可能会给以后的参数调整带来困难。所以要解决这个问题。     &nb</div> </li> <li><a href="/article/2044.htm" title="读《研磨设计模式》-代码笔记-外观模式-Facade" target="_blank">读《研磨设计模式》-代码笔记-外观模式-Facade</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/ /* * 百度百科的定义: * Facade(外观)模式为子系统中的各类(或结构与方法)提供一个简明一致的界面, * 隐藏子系统的复杂性,使子系统更加容易使用。他是为子系统中的一组接口所提供的一个一致的界面 * * 可简单地</div> </li> <li><a href="/article/2171.htm" title="After Effects教程收集" target="_blank">After Effects教程收集</a> <span class="text-muted">cherishLC</span> <a class="tag" taget="_blank" href="/search/After+Effects/1.htm">After Effects</a> <div>1、中文入门 http://study.163.com/course/courseMain.htm?courseId=730009 2、videocopilot英文入门教程(中文字幕) http://www.youku.com/playlist_show/id_17893193.html 英文原址: http://www.videocopilot.net/basic/ 素</div> </li> <li><a href="/article/2298.htm" title="Linux Apache 安装过程" target="_blank">Linux Apache 安装过程</a> <span class="text-muted">crabdave</span> <a class="tag" taget="_blank" href="/search/apache/1.htm">apache</a> <div>Linux Apache 安装过程   下载新版本: apr-1.4.2.tar.gz(下载网站:http://apr.apache.org/download.cgi) apr-util-1.3.9.tar.gz(下载网站:http://apr.apache.org/download.cgi) httpd-2.2.15.tar.gz(下载网站:http://httpd.apac</div> </li> <li><a href="/article/2425.htm" title="Shell学习 之 变量赋值和引用" target="_blank">Shell学习 之 变量赋值和引用</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/shell/1.htm">shell</a><a class="tag" taget="_blank" href="/search/%E5%8F%98%E9%87%8F%E5%BC%95%E7%94%A8/1.htm">变量引用</a><a class="tag" taget="_blank" href="/search/%E8%B5%8B%E5%80%BC/1.htm">赋值</a> <div>本文转自:http://www.cnblogs.com/papam/articles/1548679.html Shell编程中,使用变量无需事先声明,同时变量名的命名须遵循如下规则: 首个字符必须为字母(a-z,A-Z) 中间不能有空格,可以使用下划线(_) 不能使用标点符号 不能使用bash里的关键字(可用help命令查看保留关键字) 需要给变量赋值时,可以这么写: </div> </li> <li><a href="/article/2552.htm" title="Java SE 第一讲(Java SE入门、JDK的下载与安装、第一个Java程序、Java程序的编译与执行)" target="_blank">Java SE 第一讲(Java SE入门、JDK的下载与安装、第一个Java程序、Java程序的编译与执行)</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/jdk/1.htm">jdk</a> <div>Java SE 第一讲: Java SE:Java Standard Edition Java ME: Java Mobile Edition Java EE:Java Enterprise Edition Java是由Sun公司推出的(今年初被Oracle公司收购)。 收购价格:74亿美金 J2SE、J2ME、J2EE JDK:Java Development </div> </li> <li><a href="/article/2679.htm" title="YII给用户登录加上验证码" target="_blank">YII给用户登录加上验证码</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/yii/1.htm">yii</a> <div>1、在SiteController中添加如下代码: /** * Declares class-based actions. */ public function actions() { return array( // captcha action renders the CAPTCHA image displ</div> </li> <li><a href="/article/2806.htm" title="Lucene使用说明" target="_blank">Lucene使用说明</a> <span class="text-muted">dyy_gusi</span> <a class="tag" taget="_blank" href="/search/Lucene/1.htm">Lucene</a><a class="tag" taget="_blank" href="/search/search/1.htm">search</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E8%AF%8D%E5%99%A8/1.htm">分词器</a> <div>Lucene使用说明 1、lucene简介 1.1、什么是lucene     Lucene是一个全文搜索框架,而不是应用产品。因此它并不像baidu或者googleDesktop那种拿来就能用,它只是提供了一种工具让你能实现这些产品和功能。 1.2、lucene能做什么     要回答这个问题,先要了解lucene的本质。实际</div> </li> <li><a href="/article/2933.htm" title="学习编程并不难,做到以下几点即可!" target="_blank">学习编程并不难,做到以下几点即可!</a> <span class="text-muted">gcq511120594</span> <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/%E7%BC%96%E7%A8%8B/1.htm">编程</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a> <div>不论你是想自己设计游戏,还是开发iPhone或安卓手机上的应用,还是仅仅为了娱乐,学习编程语言都是一条必经之路。编程语言种类繁多,用途各 异,然而一旦掌握其中之一,其他的也就迎刃而解。作为初学者,你可能要先从Java或HTML开始学,一旦掌握了一门编程语言,你就发挥无穷的想象,开发 各种神奇的软件啦。 1、确定目标 学习编程语言既充满乐趣,又充满挑战。有些花费多年时间学习一门编程语言的大学生到</div> </li> <li><a href="/article/3060.htm" title="Java面试十问之三:Java与C++内存回收机制的差别" target="_blank">Java面试十问之三:Java与C++内存回收机制的差别</a> <span class="text-muted">HNUlanwei</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/C%2B%2B/1.htm">C++</a><a class="tag" taget="_blank" href="/search/finalize%28%29/1.htm">finalize()</a><a class="tag" taget="_blank" href="/search/%E5%A0%86%E6%A0%88/1.htm">堆栈</a><a class="tag" taget="_blank" href="/search/%E5%86%85%E5%AD%98%E5%9B%9E%E6%94%B6/1.htm">内存回收</a> <div>大家知道, Java 除了那 8 种基本类型以外,其他都是对象类型(又称为引用类型)的数据。 JVM 会把程序创建的对象存放在堆空间中,那什么又是堆空间呢?其实,堆( Heap)是一个运行时的数据存储区,从它可以分配大小各异的空间。一般,运行时的数据存储区有堆( Heap)和堆栈( Stack),所以要先看它们里面可以分配哪些类型的对象实体,然后才知道如何均衡使用这两种存储区。一般来说,栈中存放的</div> </li> <li><a href="/article/3187.htm" title="第二章 Nginx+Lua开发入门" target="_blank">第二章 Nginx+Lua开发入门</a> <span class="text-muted">jinnianshilongnian</span> <a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a><a class="tag" taget="_blank" href="/search/lua/1.htm">lua</a> <div>Nginx入门 本文目的是学习Nginx+Lua开发,对于Nginx基本知识可以参考如下文章: nginx启动、关闭、重启 http://www.cnblogs.com/derekchen/archive/2011/02/17/1957209.html agentzh 的 Nginx 教程 http://openresty.org/download/agentzh-nginx-tutor</div> </li> <li><a href="/article/3314.htm" title="MongoDB windows安装 基本命令" target="_blank">MongoDB windows安装 基本命令</a> <span class="text-muted">liyonghui160com</span> <div>  windows安装    安装目录:   D:\MongoDB\   新建目录   D:\MongoDB\data\db   4.启动进城:   cd D:\MongoDB\bin   mongod -dbpath D:\MongoDB\data\db   &n</div> </li> <li><a href="/article/3441.htm" title="Linux下通过源码编译安装程序" target="_blank">Linux下通过源码编译安装程序</a> <span class="text-muted">pda158</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>一、程序的组成部分   Linux下程序大都是由以下几部分组成:   二进制文件:也就是可以运行的程序文件   库文件:就是通常我们见到的lib目录下的文件   配置文件:这个不必多说,都知道   帮助文档:通常是我们在linux下用man命令查看的命令的文档    二、linux下程序的存放目录   linux程序的存放目录大致有三个地方:   /etc, /b</div> </li> <li><a href="/article/3568.htm" title="WEB开发编程的职业生涯4个阶段" target="_blank">WEB开发编程的职业生涯4个阶段</a> <span class="text-muted">shw3588</span> <a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/1.htm">编程</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</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%94%9F%E6%B4%BB/1.htm">生活</a> <div>觉得自己什么都会 2007年从学校毕业,凭借自己原创的ASP毕业设计,以为自己很厉害似的,信心满满去东莞找工作,找面试成功率确实很高,只是工资不高,但依旧无法磨灭那过分的自信,那时候什么考勤系统、什么OA系统、什么ERP,什么都觉得有信心,这样的生涯大概持续了约一年。 根本不是自己想的那样 2008年开始接触很多工作相关的东西,发现太多东西自己根本不会,都需要去学,不管是asp还是js,</div> </li> <li><a href="/article/3695.htm" title="遭遇jsonp同域下变作post请求的坑" target="_blank">遭遇jsonp同域下变作post请求的坑</a> <span class="text-muted">vb2005xu</span> <a class="tag" taget="_blank" href="/search/jsonp/1.htm">jsonp</a><a class="tag" taget="_blank" href="/search/%E5%90%8C%E5%9F%9Fpost/1.htm">同域post</a> <div>今天迁移一个站点时遇到一个坑爹问题,同一个jsonp接口在跨域时都能调用成功,但是在同域下调用虽然成功,但是数据却有问题. 此处贴出我的后端代码片段 $mi_id = htmlspecialchars(trim($_GET['mi_id '])); $mi_cv = htmlspecialchars(trim($_GET['mi_cv ']));  贴出我前端代码片段: $.aj</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>