• [技术干货] html dom事件
    对事件做出反应我们可以在事件发生时执行 JavaScript,比如当用户在 HTML 元素上点击时。如需在用户点击某个元素时执行代码,请向一个 HTML 事件属性添加 JavaScript 代码:onclick=JavaScriptHTML 事件的例子:当用户点击鼠标时当网页已加载时当图像已加载时当鼠标移动到元素上时当输入字段被改变时当提交 HTML 表单时当用户触发按键时在本例中,当用户在 <h1> 元素上点击时,会改变其内容:实例<!DOCTYPE html><html><body><h1 onclick="this.innerHTML='Ooops!'">点击文本!</h1></body></html>本例从事件处理器调用一个函数:实例<!DOCTYPE html><html><head><script>function changetext(id){    id.innerHTML="Ooops!";}</script></head><body><h1 onclick="changetext(this)">点击文本!</h1></body></html>HTML 事件属性如需向 HTML 元素分配 事件,您可以使用事件属性。实例向 button 元素分配 onclick 事件:<button onclick="displayDate()">点这里</button>在上面的例子中,名为 displayDate 的函数将在按钮被点击时执行。使用 HTML DOM 来分配事件HTML DOM 允许您使用 JavaScript 来向 HTML 元素分配事件:实例向 button 元素分配 onclick 事件:<script>document.getElementById("myBtn").onclick=function(){displayDate()};</script>在上面的例子中,名为 displayDate 的函数被分配给 id="myBtn" 的 HTML 元素。按钮点击时Javascript函数将会被执行。onload 和 onunload 事件onload 和 onunload 事件会在用户进入或离开页面时被触发。onload 事件可用于检测访问者的浏览器类型和浏览器版本,并基于这些信息来加载网页的正确版本。onload 和 onunload 事件可用于处理 cookie。实例<body onload="checkCookies()">onchange 事件onchange 事件常结合对输入字段的验证来使用。下面是一个如何使用 onchange 的例子。当用户改变输入字段的内容时,会调用 upperCase() 函数。实例<input type="text" id="fname" onchange="upperCase()">
  • [技术干货] 事件
    HTML 事件HTML 事件可以是浏览器行为,也可以是用户行为。以下是 HTML 事件的实例:HTML 页面完成加载HTML input 字段改变时HTML 按钮被点击通常,当事件发生时,你可以做些事情。在事件触发时 JavaScript 可以执行一些代码。HTML 元素中可以添加事件属性,使用 JavaScript 代码来添加 HTML 元素。单引号:<some-HTML-element some-event='JavaScript 代码'>双引号:<some-HTML-element some-event="JavaScript 代码">在以下实例中,按钮元素中添加了 onclick 属性 (并加上代码):实例<button onclick="getElementById('demo').innerHTML=Date()">现在的时间是?</button>以上实例中,JavaScript 代码将修改 id="demo" 元素的内容。在下一个实例中,代码将修改自身元素的内容 (使用 this.innerHTML):实例<button onclick="this.innerHTML=Date()">现在的时间是?</button>Note    JavaScript代码通常是几行代码。比较常见的是通过事件属性来调用:实例<button onclick="displayDate()">现在的时间是?</button>
  • [技术干货] [2.16设计器]smtp.sendemail发送邮件注意事项/未命名的附件000.dat
    我们在发送邮件的时候可能用到图片与文字混发,注意发送的时候需要对模板做一些处理。1、简单邮件不使用模板的时候注意这里。对于图片路径需要放置转义,方法如下。用一个r"路径"也可以参考这个课程https://education.huaweicloud.com/courses/course-v1:HuaweiX+CBUCNXE246+Self-paced/about2、如果是需要绚一点的样子,需要一个html模板来支持。可以参考这个课程,虽然有点老,原理是一样的。https://ilearningx.huawei.com/courses/course-v1:HuaweiX+AntRobot-cn-201+Self-paced/courseware/eb9b90840ab34e8e88ff4fc0aa721bde/338ac2ef34a6444ab1a66d71dc9a811a/3、如果你的邮件内容是个可变的表格,那么需要自己根据每次的表格数量生成不同的html文件,再用此文件发送。不变部分的html保存好,动态拼接表格部分内容,然后生成一个新html文件即可,亲测可用。4、如果是2.17版本,发送的中文文件名的附件变为“未命名的附件 000xx.dat”,则需要替换一下这个文件。文件在本文的附件里。
  • [页面编排] 【ADC】【页面编排】表格列 html 如何使用变量
    【功能模块】【操作步骤&问题现象】1、2、【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [新手课堂] 创建路由
    #让我们从 flask 导入 flask import Flask import  os  #导入操作系统模块app  =  Flask ( __name__ )@app.route('/') # 这个装饰器创建 home 路由def  home ():     return  '<h1>Welcome</h1>'@app.route('/about')def  about ():     return  '<h1>About us</h1>'如果 __name__  ==  '__main__' :#部署,我们使用ENVIRON #使之成为生产和开发工作    port = int(os.environ.get("PORT", 5000))    app.run(debug=True, host='0.0.0.0', port=port)要运行flask 应用程序,请在主flask 应用程序目录中编写python app.py。运行python app.py 后,检查本地主机 5000。让我们添加额外的路线。创建关于路由#让我们从 flask 导入 flask import Flask import  os  #导入操作系统模块app  =  Flask ( __name__ )@app.route('/') # 这个装饰器创建 home 路由def  home ():     return  '<h1>Welcome</h1>'@app.route('/about')def  about ():     return  '<h1>About us</h1>'如果 __name__  ==  '__main__' :#部署,我们使用ENVIRON #使之成为生产和开发工作  port = int(os.environ.get("PORT", 5000))    app.run(debug=True, host='0.0.0.0', port=port)现在,我们在上面的代码中添加了 about 路由。如果我们想渲染一个 HTML 文件而不是字符串呢?可以使用函数render_templae渲染 HTML 文件。让我们创建一个名为 templates 的文件夹,并在项目目录中创建 home.html 和 about.html。让我们也从flask导入render_template函数。
  • [技术干货] PHP 超级全局变量
    $GLOBALS 是PHP的一个超级全局变量组,在一个PHP脚本的全部作用域中都可以访问。$GLOBALS 是一个包含了全部变量的全局组合数组。变量的名字就是数组的键。以下实例介绍了如何使用超级全局变量 $GLOBALS:实例<?php $x = 75; $y = 25; function addition() {     $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; } addition(); echo $z; ?>以上实例中 z 是一个$GLOBALS数组中的超级全局变量,该变量同样可以在函数外访问。PHP $_SERVER$_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。不能保证每个服务器都提供全部项目;服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目。以下实例中展示了如何使用$_SERVER中的元素:实例<?php echo $_SERVER['PHP_SELF'];echo "<br>";echo $_SERVER['SERVER_NAME'];echo "<br>";echo $_SERVER['HTTP_HOST'];echo "<br>";echo $_SERVER['HTTP_REFERER'];echo "<br>";echo $_SERVER['HTTP_USER_AGENT'];echo "<br>";echo $_SERVER['SCRIPT_NAME'];?>PHP $_REQUESTPHP $_REQUEST 用于收集HTML表单提交的数据。以下实例显示了一个输入字段(input)及提交按钮(submit)的表单(form)。 当用户通过点击 "Submit" 按钮提交表单数据时, 表单数据将发送至<form>标签中 action 属性中指定的脚本文件。 在这个实例中,我们指定文件来处理表单数据。如果你希望其他的PHP文件来处理该数据,你可以修改该指定的脚本文件名。 然后,我们可以使用超级全局变量 $_REQUEST 来收集表单中的 input 字段数据:实例<html><body> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">Name: <input type="text" name="fname"><input type="submit"></form> <?php $name = $_REQUEST['fname']; echo $name; ?> </body></html>PHP $_POSTPHP $_POST 被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method="post"。以下实例显示了一个输入字段(input)及提交按钮(submit)的表单(form)。 当用户通过点击 "Submit" 按钮提交表单数据时, 表单数据将发送至<form>标签中 action 属性中指定的脚本文件。 在这个实例中,我们指定文件来处理表单数据。如果你希望其他的PHP文件来处理该数据,你可以修改该指定的脚本文件名。 然后,我们可以使用超级全局变量 $_POST 来收集表单中的 input 字段数据:实例<html><body> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">Name: <input type="text" name="fname"><input type="submit"></form> <?php $name = $_POST['fname']; echo $name; ?> </body></html>PHP $_GETPHP $_GET 同样被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method="get"。$_GET 也可以收集URL中发送的数据。假定我们有一个包含参数的超链接HTML页面:<html><body><a href="test_get.php?subject=PHP&web=runoob.com">Test $GET</a></body></html>当用户点击链接 "Test $GET", 参数 "subject" 和 "web" 将发送至"test_get.php",你可以在 "test_get.php" 文件中使用 $_GET 变量来获取这些数据。以下实例显示了 "test_get.php" 文件的代码:实例<html><body> <?php echo "Study " . $_GET['subject'] . " @ " . $_GET['web'];?> </body></html>
  • [技术干货] 如何获取邮件正文中的表格并将其写入excel?
    1. 保证Studio能访问html文件首先需要进入Chrome的扩展程序当中,路径:chrome://extensions/,之后进入WeAutomate Web 2.0.2详情页面中,如下图:然后启用“允许访问文件网址”,如下图:2. 获取邮件之后,可用桌面应用程序的控件Click相关操作打开邮件的html文件,或者直接拼接 ‘file:///’和 邮件的绝对地址,用openurl控件(或open控件,不建议使用)打开html文件;3. 可用网页的getTable控件,定位邮件中的表格;4. 将getTable获取的表格用excelWriteRange写入到excel中。
  • [已解决问题归档] 【CloudUSM V600R019C10产品 对接jssip实现html5实时语音]
    【功能模块】 我现在要实现使用javascript   sip库 在前端html5页面实现基于sip协议 的实时语音,拔通连在cloud usm平台某一台坐机有没有什么开发例子能提供给我
  • [应用安全] 【漏洞通告】Microsoft MSHTML远程代码执行漏洞CVE-2021-40444
    漏洞名称 : Microsoft MSHTML远程代码执行漏洞 CVE-2021-40444组件名称 : Microsoft MSHTML漏洞类型 : 远程代码执行影响范围 :Windows 7 for 32/x64-based Systems Service Pack 1Windows RT 8.1Windows 8.1/10 for 32/x64-based SystemsWindows 10 Version 1607 for 32/x64-based SystemsWindows 10 Version 2004/1809/1909/20H2/21H1 for 32/x64/ARM64-based SystemsWindows Server 2012/2012 R2/2016/2022Windows Server 2008 R2 for x64-based Systems Service Pack 1/2Windows Server 2004/2012/2012 R2/2016/2019/20H2/2022 (Server Core installation)利用条件 :1、用户认证:不需要用户认证2、触发方式:远程综合评价 :<综合评定利用难度>:未知。<综合评定威胁等级>:高危,能造成远程代码执行。漏洞分析:1、组件介绍    MSHTML 是微软的窗口操作系统(Windows)搭载的网页浏览器—Internet Explorer的排版引擎的名称。MSHTML是微软公司的一个COM组件,该组件封装了HTML语言中的所有元素及其属性,通过其提供的标准接口,可以访问指定网页的所有元素。ActiveX控件是微软公司的COM架构下单产物。其在Windows操作系统中应用广泛,Windows中的Office套件,IE浏览器等产品中有广泛应用。通过ActiveX控件可以与微软的MSHTML组件进行交互。2、漏洞描述    今日,安全团队监测到一则Microsoft MSHTML组件存在远程代码执行漏洞的信息,漏洞编号:CVE-2021-40444,漏洞威胁等级:高危。    该漏洞的是由于组件自身缺陷而引起的,攻击者可利用该漏洞,通过构造恶意的Office文档发送给被攻击方,最终导致远程代码执行。影响范围:微软ActiveX控件是微软公司的COM架构下单产物。其在Windows操作系统中应用广泛,Windows中的Office套件,IE浏览器等产品中有广泛应用。通过ActiveX控件可以与微软的MSHTML组件进行交互,从而引起安全问题。Windows作为全球安装用户量最大的操作系统,使用范围遍及世界各地,涉及用户量多,导致该漏洞的危害等级较高。目前受影响的版本:Windows 7 for 32/x64-based Systems Service Pack 1Windows RT 8.1Windows 8.1/10 for 32/x64-based SystemsWindows 10 Version 1607 for 32/x64-based SystemsWindows 10 Version 2004/1809/1909/20H2/21H1 for 32/x64/ARM64-based SystemsWindows Server 2012/2012 R2/2016/2022Windows Server 2008 R2 for x64-based Systems Service Pack 1/2Windows Server 2004/2012/2012 R2/2016/2019/20H2/2022 (Server Core installation)解决方案:1、临时解决方案    当前官方已发布临时修复方案1、创建一个.reg类型的文件,并写入如下内容:Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0]"1001"=dword:00000003"1004"=dword:00000003[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1]"1001"=dword:00000003"1004"=dword:00000003[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2]"1001"=dword:00000003"1004"=dword:00000003[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3]"1001"=dword:00000003"1004"=dword:000000032、保存并双击该文件。3、重启操作系统参考链接:https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-40444
  • [技术干货] css 分页实例
    简单分页如果你的网站有很多个页面,你就需要使用分页来为每个页面做导航。以下实例演示了如何使用 HTML 和 CSS 来创建分页:CSS 实例ul.pagination {    display: inline-block;    padding: 0;    margin: 0;}ul.pagination li {display: inline;}ul.pagination li a {    color: black;    float: left;    padding: 8px 16px;    text-decoration: none;}点击及鼠标悬停分页样式«1234567»如果点击当前页,可以使用 .active 来设置当前页样式,鼠标悬停可以使用 :hover 选择器来修改样式:CSS 实例ul.pagination li a.active {    background-color: #4CAF50;    color: white;}ul.pagination li a:hover:not(.active) {background-color: #ddd;}CSS 实例ul.pagination li a.active {    background-color: #4CAF50;    color: white;}ul.pagination li a:hover:not(.active) {background-color: #ddd;}圆角样式«1234567»可以使用 border-radius 属性为选中的页码来添加圆角样式:CSS 实例ul.pagination li a {    border-radius: 5px;}ul.pagination li a.active {    border-radius: 5px;}鼠标悬停过渡效果«1234567»我们可以通过添加 transition 属性来为鼠标移动到页码上时添加过渡效果:CSS 实例ul.pagination li a {    transition: background-color .3s;}带边框分页«1234567»我们可以使用 border 属性来添加带边框分页:CSS 实例ul.pagination li a {    border: 1px solid #ddd; /* Gray */}圆角边框提示: 在第一个分页链接和最后一个分页链接添加圆角:«1234567»CSS 实例.pagination li:first-child a {    border-top-left-radius: 5px;    border-bottom-left-radius: 5px;}.pagination li:last-child a {    border-top-right-radius: 5px;    border-bottom-right-radius: 5px;}分页间隔提示: 你可以使用 margin 属性来为每个页码直接添加空格:«1234567»CSS 实例ul.pagination li a {    margin: 0 4px; /* 0 对应的是头部与底部,可以修改它看看效果 */}分页字体大小«1234567»我们可以使用 font-size 属性来设置分页的字体大小:CSS 实例ul.pagination li a {    font-size: 22px;}居中分页«1234567»如果要让分页居中,可以在容器元素上 (如 <div>) 添加 text-align:center 样式:CSS 实例div.center {    text-align: center;}更多实例CSS 实例面包屑导航首页 前端 HTML 教程 HTML 段落另外一种导航为面包屑导航,实例如下:CSS 实例ul.breadcrumb {    padding: 8px 16px;    list-style: none;    background-color: #eee;}ul.breadcrumb li {display: inline;}ul.breadcrumb li+li:before {    padding: 8px;    color: black;    content: "/\00a0";
  • [技术干货] html5表单的required属性使用
    如何自定义提示文字用户名<input type="text" id="username" required oninvalid="setCustomValidity('请输入您的姓名');" oninput="setCustomValidity('');">如何让required失效1:把按钮类型变成button而不是submit2:提交按钮添加formnovalidate属性<form method="post" action="">         用户名<input type="text" id="username" required="required"><br>         密码<input type="password" id="password" required><br>         <input type="submit" value="登录" formnovalidate >     </form>3:在元素中添加novalidate属性,禁用整个表单的验证功能<form method="post" action="" novalidate>         用户名<input type="text" id="username" required="required"><br>         密码<input type="password" id="password" required><br>         <input type="submit" value="登录" >     </form>4,pattern属性 - 使用正则表达式验证(1)不必使用^和$字符表示要匹配字段值得开头和结尾。(2)只设置pattern的话,空值也会通过。如果不允许空,则还要加上required属性。
  • [技术干货] 经常遇到的浏览器的兼容性有哪些?
      浏览器兼容性问题  出现浏览器兼容性问题的主要原因,是不同浏览器对同一段代码的有不同解析,造成的页面显示效果不统一。  在大多数情况下,我们的需求是,无论用户在什么浏览器上查看我们的网站或登录我们的系统,显示效果都应该是一致的。所以浏览器兼容性问题是我们web前端开发人员经常会碰到和必须解决的问题。  什么是css hack  不同的浏览器对CSS的解析结果是不同的,因此会导致相同的CSS输出的页面效果不同,这就需要CSS Hack来解决浏览器局部的兼容性问题。而这个针对不同的浏览器写不同的CSS 代码的过程,就叫CSS Hack。  常见的兼容性问题  · 浏览器默认的margin和padding不同。解决方案是加一个全局的*{margin:0;padding:0;}来统一。  · png24位的图片在iE6浏览器上出现背景,解决方案是做成PNG8.  · Chrome 中文界面下默认会将小于 12px 的文本强制按照 12px 显示, 可通过加入 CSS 属性 -webkit-text-size-adjust: none; 解决。 (可通过加入 CSS 属性transform: scale(0.75,0.75); 解决)  · IE6双边距bug:块属性标签float后,又有横行的margin情况下,在ie6显示margin比设置的大。解决方案是在float的标签样式控制中加入 display:inline;将其转化为行内属性。  · 在ie6,ie7中元素高度超出自己设置高度。原因是IE8以前的浏览器中会给元素设置默认的行高的高度导致的。解决方案是加上overflow:hidden或设置line-height为更小的高度。  · min-height在IE6下不起作用。解决方案是添加 height:auto !important;height:xxpx;其中xx就是min-height设置的值。  · 透明性IE用filter:Alpha(Opacity=60),而其他主流浏览器用 opacity:0.6;  · a(有href属性)标签嵌套下的img标签,在IE下会带有边框。解决办法是加上a img{border:none;}样式。  · input边框问题。去掉input边框一般用border:none;就可以,但由于IE6在解析input样式时的BUG(优先级问题),在IE6下无效。  · ie6的默认CSS样式,涉及到border的有border-style:inset;border-width:2px;浏览器根据自己的内核解析规则,先解析自身的默认CS再 解析开发者书写的CSS,达到渲染标签的目的。IE6对INPUT的渲染存在bug,border:none;不被解析,当有border-width或border-colo r设置的时候才会令IE6去解析border-style:none;。解决方案是用:border:0或border:0 none;或border:none:border-color:transparent;,推荐用第三种方案。  常用hack的技巧  CSS Hack常见的有三种形式  CSS属性Hack、CSS选择符Hack以及IE条件注释Hack, Hack主要针对IE浏览器。  1、属性级Hack:比如IE6能识别下划线””和星号” * “,IE7能识别星号” * “,但不能识别下划线””,而firefox两个都不能认识。  2、选择符级Hack:比如IE6能识别html .class{},IE7能识别+html .class{}或者*:first-child+html .class{}。  3、IE条件注释Hack:IE条件注释是微软从IE5开始就提供的一种非标准逻辑语句。比如针对所有IE:<!–[if IE]><!–您的代码–><![endif]–>,针对IE6及以下版本:<!–[if lt IE 7]><!–您的代码–><![endif]–>,这类Hack不仅对CSS生效,对写在判断语句里面的所有代码都 会生效。  PS:条件注释只有在IE浏览器下才能执行,这个代码在非IE浏览下被当做注释视而不见。可以通过IE条件注释载入不同的CSS、JS、HTML和服务器代码等。
  • [新手课堂] Django中实战使用——常用的过滤器:
    Django中实战使用——常用的过滤器:①项目目录下的views.py文件:from django.shortcuts import renderfrom django.http import HttpResponse# Create your views here.from datetime import datetimedef index(request):    test="THIS IS A LIST!"    list=["A","B","C","D","E"]    data={        'test':test,        'xx':'',        'num1':1,        'num2':2,        'list':list,        'now':datetime.now(),        'html':'<h1>hello django!!!</h1>',        'float':3.1415926    }    return render(request, "index.html", data)②项目目录下templates模板文件夹下的模板文件index.html:<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>测试!</title></head><body>{#没做处理的变量:#}{{ test }}<br>{#设置了默认值的变量  在这个值被django认为是False的时候会使用此默认值。比如:空字符串,None。#}{{ xx|default:'xxxxx' }}<br>{#设置了只有为None时才使用默认值的变量#}{{ xx|default_if_none:'aaaaa'}}<br>{#变为小写后的变量#}{{ test|lower }}<br>{#先变为小写再将首字母大写后的变量#}{{ test|lower|capfirst }}<br>{#两个数字变量相加   add:字符串相加,数字相加,列表相加,如果失败,将会返回一个空字符串#}{{ num1|add:num2 }}<br>{#两个字符串变量相加#}{{ test|add:xx }}<br>{#列表变量的第一个元素#}{{ list|first }}<br>{#列表变量的最后一个元素#}{{ list|last }}<br>{#默认的data日期时间格式#}{{ now|date }}<br>{#默认的time时间格式#}{{ now|time }}<br>{#这是data过滤器的年月日24小时制时间格式#}{{ now|date:'Y/m/d/H:i:s' }}<br>{#这是time过滤器的时分秒12小时制时间格式#}{{ now|time:'h:i:s' }}<br>{#这是字符串的join方法  跟python中join一样的用法#}{{ list|join:'oooo' }}<br>{#这是字符串的长度方法#}{{ test|length }}<br>{#这是列表的长度是否为4#}{{ list|length_is:4 }}<br>{#下面这俩有xxx.html类型的,针对html,截断标签中的字符,而不会截断标签#}{#这是字符串只显示4个字符,其余省略(但是占3位)#}{{ test|truncatechars:7 }}<br>{#这是字符串只显示2个单词,其余省略(不占位)#}{{ test|truncatewords:2 }}<br>{#这是字符串的切片#}{{ test|slice:'1:4' }}<br>{#这是列表的切片#}{{ list|slice:'2' }}<br>{#这是含html标签的字符串#}{{ html }}<br>{#这是去掉字符串中的html标签#}{{ html|striptags }}<br>{#这是关掉自动转义,使字符串中html标签生效#}{{ html|safe }}<br>{#这是没做处理的小数#}{{ float }}<br>{#这是保留了一位小数#}{{ float|floatformat }}<br>{#这是保留了两位小数#}{{ float|floatformat:'2' }}</body></html>
  • [技术干货] bs4用于爬虫
    """example02 - bs4Author: AsusDate: 2021/8/17"""import requestsimport bs4# bs4: Beautiful Soup 4 ---> 可以从HTML或者XML中提取数据。html = """The Dormouse's storyOnce upon a time there were three little sisters; and their names were,Lacie andTillie;and they lived at the bottom of a well...."""soup = bs4.BeautifulSoup(html, 'lxml')# print(soup, type(soup), sep='\n')# prettify(): 格式化HTML源码print(soup.prettify())# 打印标签: 只打印第一个标签的内容print(soup.head.title)# 打印标签内容: 4种 ---> string、get_text()、text、contentsprint(soup.head.title.string)print(soup.head.title.get_text())print(soup.head.title.text)print(soup.head.title.contents)# 选择标签内容方法:#     select:使用(id、class、标签、属性、父子、后代、兄弟、相邻兄弟选择器)去选择标签 ---> list#     select_one:使用(id、class、标签、属性、父子、后代、兄弟、相邻兄弟选择器)去选择标签 ---> select结果中的第一个元素p_list = soup.select('body > p')print(p_list)p_list1 = soup.select('body > .title')print(p_list1)p = soup.select_one('body > p')print(p)
  • [技术干货] 事件
        HTML 事件是发生在 HTML 元素上的事情。当在 HTML 页面中使用 JavaScript 时, JavaScript 可以触发这些事件。HTML 事件HTML 事件可以是浏览器行为,也可以是用户行为。以下是 HTML 事件的实例:HTML 页面完成加载HTML input 字段改变时HTML 按钮被点击通常,当事件发生时,你可以做些事情。在事件触发时 JavaScript 可以执行一些代码。HTML 元素中可以添加事件属性,使用 JavaScript 代码来添加 HTML 元素。单引号:双引号:在以下实例中,按钮元素中添加了 onclick 属性 (并加上代码):实例现在的时间是?以上实例中,JavaScript 代码将修改 id="demo" 元素的内容。在下一个实例中,代码将修改自身元素的内容 (使用 this.innerHTML):实例现在的时间是?Note    JavaScript代码通常是几行代码。比较常见的是通过事件属性来调用:实例现在的时间是?