html代码

HTML5简单入门系列(一)

放肆的年华 提交于 2020-04-03 10:29:48
前言 随着HTML5的流行,LZ作为一个web开发者,也决定学习一下前端前沿技术。 HTML5 是下一代的HTML,它将成为 HTML、XHTML 以及 HTML DOM 的新标准。它是W3C( World Wide Web Consortium)和WHATWG(Web Hypertext Application Technology Working Group)合作的结果,在2014年10月29日宣布完成。 他们为 HTML5 建立的一些规则: 1、新特性应该基于 HTML、CSS、DOM 以及 JavaScript。 2、减少对外部插件的需求(比如 Flash) 3、更优秀的错误处理 4、更多取代脚本的标记 5、HTML5 应该独立于设备 6、开发进程应对公众透明 HTML5新增的标签 视频标签VIDEO Web上的视频播放大多都是通过插件来显示的,而HTML5规定了,通过一种新加的标签video实现视频播放的标准方法。请看下边的代码 1 <!DOCTYPE html> 2 <html> 3 <body> 4 5 <div style="text-align:center;"> 6 <button onclick="playPause()">播放/暂停</button> 7 <button onclick="makeBig()">大</button> 8 <button

DOCTYPE声明作用及用法详解

半腔热情 提交于 2020-04-03 04:19:59
一、浏览器呈现模式和doctype 有的网页是遵循标准而创作的,但也有很多不是。即使你不能创建遵循标准的网页,也希望浏览器根据标准来正确显示那些页。目前,大量网页充斥着大量非标准代码,它们仍能正常地工作。事实上,为旧版浏览器设计的大多数代码都能在新版浏览器中正确显示(虽然呈现方式可能有所区别)。这是什么原因呢?事实上,假如严格遵循最新标准,会完全破坏那些页的生存基础。对于任何希望有所作为的浏览器来说,这当然是令人无法接受的。 浏览器呈现模式 现代浏览器包括不同的呈现模式,目的是既支持遵循标准的网页,也支持为老式浏览器而设计的网页。其中, Standards (标准)模式(也就是严格呈现模式)用于呈现遵循最新标准的网页,而 Quirks (包容)模式(也就是松散呈现模式或者兼容模式)用于呈现为传统浏览器而设计的网页。另外,注意Mozilla/Netscape 6新增了一种 Almost Standards (近似标准)模式,用于支持为标准的某个老版本而设计的网页。 什么是 doctype切换? 放在网页顶部的doctype声明是让浏览器进入正确呈现模式的关键。浏览器自动切换到恰当的呈现模式,以便正确显示由doctype声明所指定的文档种类。 理论上,这应该是一个非常直观的切换。假如doctype指出当前网页是一个遵循标准(也就是HTML 4+或XHTML 1+)的文档

requests_html

|▌冷眼眸甩不掉的悲伤 提交于 2020-04-03 04:17:51
render方法 我们先理一下关系 requests 和的作者是同一个人, pyppeteer 是 nodejs 中 puppeteer 的非官方实现 requests-html 调用的 pyppeteer 与浏览器进行交互, puppeteer 的中文文档 点这里传送 pyppeteer 的文档 博文参考 调用render 方法启动 pyppeteer 使用之前要先下载 chromium 下载地址 你懂的,天朝网络环境很复杂,如果要用 pyppeteer 自己绑定的 chromium ,半天都下载不下来,所以我们要手动安装,然后在程序里面指定 executablePath 对于 requests-html 源代码在714行中加入 executablePath=’path/to/the/chromium‘ from requests_html import HTMLSession url = 'https://httpbin.org/get' session = HTMLSession() res = session.get(url = url) res.html.render() print(res.html.html) 可以看到如上图中我用红色的圈出来的地方,标示的是无头浏览器 HeadlessChrome ,这个是明显不是正常的人类用户,会被反扒网站所识别 url =

Django之Ajax传输数据

久未见 提交于 2020-04-03 02:51:33
MTV与MVC模型 MTV与MVC都是模型,只不过MTV是django自己定义的,具体看一下他们的意思 MTV模型(django) M:模型层(models.py) T:templates文件夹 V:视图层(views) MVC模型 M:模型层 V:视图层(views.py) C:控制器(Controller) urls.py 总结:本质上django的MTV也是MVC 前后端传输数据编码格式 首先,在我们不指定传输数据的时候,默认的contentType都是urlencoded urlencoded   对应的数据格式: name=jason&password=555   后端获取数据: request.POST      PS:django会将urlencded编码的数据解析自动放到request.POST formdata   form表单传输文件的编码格式   后端获取文件格式数据: request.FILES   后端获取普通键值对数据: request.POST application/json    form表单不支持,Ajax支持   Ajax发送json格式数据   需要注意的点     编码与数据格式要一致 Ajax(重点掌握) Ajax支持异步提交数据,局部刷新页面,这种情况我们在好多页面都会看到,那我们要如何做到呢?先来学习Ajax的基础语法~~

大厂在用的Python反爬虫手段,破了它!

只谈情不闲聊 提交于 2020-04-02 20:20:04
SVG 映射反爬虫 SVG 是用于描述二维矢量图形的一种图形格式。它基于 XML 描述图形,对图形进行放大或缩小操作都不会影响图形质量。矢量图形的这个特点使得它被广泛应用在 Web 网站中。 接下来我们要了解的反爬虫手段正是利用 SVG 实现的,这种反爬虫手段用矢量图形代替具体的文字,不会影响用户正常阅读,但爬虫程序却无法像读取文字那样获得 SVG 图形中的内容。由于 SVG 中的图形代表的也是一个个文字,所以在使用时必须在后端或前端将真实的文字与对应的 SVG 图形进行映射和替换,这种反爬虫手段被称为 SVG 映射反爬虫。 6.3.1 SVG 映射反爬虫绕过实战 示例 6:SVG 映射反爬虫示例。 网址: http://www.porters.vip/confusion/food.html 。 任务:爬取美食商家评价网站页面中的商家联系电话、店铺地址和评分数据,页面内容如图 6-15 所示。 图 6-15 示例 6 页面 在编写 Python 代码之前,我们需要确定目标数据的元素定位。在定位过程中,发现一个与以往不同的现象:有些数字在 HTML 代码中并不存在。例如口味的评分数据,其元素定位如图 6-16 所示。 图 6-16 评分数据中口味分数元素定位 根据页面显示内容,HTML 代码中应该是 8.7 才对,但实际上我们看到的却是: 1 < span class = "item

google的html/css规范指南

断了今生、忘了曾经 提交于 2020-04-02 15:17:43
google之前出了javascript规范指南,中文翻译 传送门在此 ,现在有了html/css规范指南,明河开始翻译时版本是2.1。后续如果google有新的内容补充,明河也会跟进。 常规样式规则 协议 引入的assets资源文件(js、css、图片文件) 忽略协议 ( http:, https: ),比如: 不推荐的写法: < script src = " http://www.google.com/js/gweb/analytics/autotrack.js " ></ script > 推荐的写法: < script src = "//www.google.com/js/gweb/analytics/autotrack.js" ></ script > 不推荐的写法: .example { background : url ( http://www.google.com/images/example ); } 推荐的写法: .example { background : url (//www.google.com/images/example); } 关于google的这点建议,明河倒是觉得有待商榷,有兴趣的朋友看 http://stackoverflow.com/questions/4831741/can-i-change-all-my-http-links-to

freemarker常见语法大全

笑着哭i 提交于 2020-04-01 22:37:05
FreeMarker的插值有如下两种类型:1,通用插值${expr};2,数字格式化插值:#{expr}或#{expr;format} ${book.name?if_exists } //用于判断如果存在,就输出这个值 ${book.name?default(‘xxx’)}//默认值xxx ${book.name!"xxx"}//默认值xxx ${book.date?string('yyyy-MM-dd')} //日期格式 ${book?string.number} 20 //三种不同的数字格式 ${book?string.currency}--<#-- $20.00 --> ${book?string.percent}—<#-- 20% --> <#assign foo=ture /> //声明变量,插入布尔值进行显示 ${foo?string("yes","no")} <#-- yes --> 大小比较符号使用需要注意:(xml的原因),可以用于比较数字和日期 使用lt、lte、gt和gte来替代<、<=、>和>= 也可以使用括号<#if (x>y)> 内置函数: 调用区别于属性的访问,使用?代替. 常见的一些内置函数 对于字符串 html-对字符串进行HTML编码 cap_first-使字符串第一个字母大写 lower_case-将字符串转换成小写 trim

双向绑定学习源码

╄→尐↘猪︶ㄣ 提交于 2020-04-01 20:24:31
代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>双向绑定学习源码</title> </head> <body> <input type="text" id="message"> <div id="msg"> </div> <script> var obj = {} Object.defineProperty(obj, "data", { get: function () { console.log("get") }, set: function (newValue) { document.getElementById("message").value = newValue document.getElementById("msg").innerText = newValue } }) document.getElementById("message").addEventListener('keyup', function () { obj

webstorm/...开发 NodeJS 项目-节1

对着背影说爱祢 提交于 2020-04-01 16:49:32
使用 mongodb 的小系统 参考: https://my.oschina.net/chenhao901007/blog/312367 1. Robomongo 创建项目的数据库和数据表 参考: http://www.2cto.com/database/201604/498288.html 配置连接: Ok,连接成功齐活儿~ 一般不使用上述数据库,需新建自己的数据库 , 鼠标移到 local 上---右键---Creat DataBase---输入 数据库名称 --- 单击 creat 即可,如下建立了一个名为 recordsDB 的数据库 :    新建的数据库 recordsDB 展开,如下图:    然后,我们需要建立 collection,即建立数据表: 如下,我们建立一个名为 “users” 的用户数据表:右键Collections --- Creat Collection ... --- 填写Collection Name --- Creat 即可    结果如下:    数据表建好后,就可以插入数据 or 导入数据 (1) 插入数据/字段(Document):鼠标右键点击数据库表->选择Insert Document,弹出:     回车 填写 单条数据,如下:建立一个用户和密码信息--- 单击save 保存 双击数据表名称, 结果如图(其中 _id

HTMLCollection与NodeList

时光总嘲笑我的痴心妄想 提交于 2020-04-01 13:54:26
NodeList v.s. HTMLCollection 主要有两个方面不一样 1.包含节点的类型 2.使用方法 1.包含节点的类型不同(重要) (1)NodeList 一个节点的集合,既可以包含元素和其他节点(注释节点、文本节点等)。 (2)HTMLCollection 元素集合, 只有Element 2.使用方法 相同点: 1) 它们都有length属性 2) 都有元素的getter,叫做item,可以传入索引值取得元素。 3) 都是类数组 不同点: HTMLCollection还有一个nameItem()方法,可以返回集合中name属性和id属性值的元素。(部分浏览器也支持NodeList的nameItem()方法) 详细讲解 涉及获取元素的主要API DOM最初设计是为了解析XML而设计的,之后沿用到HTML上。我们可以把DOM分为两部分 core 和 html,Core 部分提供最基础的 XML 解析API说明,HTML 部分专为 HTML 中的 DOM 解析添加其特有的 API。NodeList接口是在core中体现的,HTMLCollection则是在html部分,不同浏览器也会实现它们的不同接口。但是现在的dom标准已经不分core和html了,反映的是浏览器的实现()。唯一要注意的是 querySelectorAll 返回的虽然是 NodeList