探索HTML5:特性、技巧与实践

需积分: 49 1 下载量 186 浏览量 更新于2024-07-26 收藏 1.08MB PDF 举报
"解读HTML5,包括其主要特性如语义化标记、表单增强、视频/音频处理、画布、可编辑内容、拖放功能和数据存储。文章提供了学习资源和浏览器支持检测方法,强调了DOCTYPE和语言标签的简化等重要变更点。" HTML5作为下一代网页标记语言,引入了一系列创新特性,旨在提升用户体验和开发效率。首先,语义化标记是HTML5的核心之一,它通过新的标签如<header>, <nav>, <section>, <article>, <aside>等,使页面结构更加清晰,对搜索引擎和辅助技术友好。 其次,HTML5对Form表单进行了增强,新增了诸如<input type="date">, <input type="range">等输入类型,以及<form validation>功能,使得表单验证更加方便,无需依赖JavaScript。同时,表单元素可以通过placeholder属性提供提示信息,提高用户交互性。 在多媒体处理方面,HTML5引入了<video>和<audio>标签,使得在网页中嵌入视频和音频变得简单,不再依赖Flash等插件。开发者可以直接控制播放、暂停、音量等,实现更丰富的媒体体验。 画布元素(<canvas>)是HTML5的一个重要组成部分,它允许动态图形绘制,通过JavaScript API实现2D图形和动画,为游戏和数据可视化提供了可能性。 HTML5还支持可编辑内容(<contenteditable>),用户可以直接在网页上编辑文本,这对于创建富文本编辑器或协作工具非常有用。 此外,HTML5的拖放功能(Drag and Drop API)让元素在页面间的移动变得直观,而Web Storage(包括localStorage和sessionStorage)则提供了更稳定的数据存储方案,弥补了Cookie的不足,能在本地保存大量数据。 在浏览器支持方面,开发者需要关注不同浏览器对HTML5特性的兼容性。文章提到了一些工具,如“何时能用”、"网页设计师的浏览器支持列表"、"HTML5测试"和"布局引擎对比",帮助开发者判断哪些特性可以安全使用。JavaScript库Modernizr是检测HTML5/CSS3支持的利器,它可以帮助开发者优雅降级或渐进增强,确保在不支持新特性的浏览器中也能正常工作。 值得注意的是,HTML5简化了DOCTYPE声明,仅需<!DOCTYPE html>,并去除了XML相关的声明,使得文档更加简洁。同时,<html lang="en">用于指定页面语言,便于国际化处理。 HTML5带来了网页开发的革命,不仅提升了网页的互动性和多媒体体验,也为开发者提供了更强大的工具和更灵活的解决方案。学习和掌握HTML5的各种特性,对于现代Web开发至关重要。

import requests import os from bs4 import BeautifulSoup class book_spider(): def __init__(self,root_url): self.root_url=root_url self.book_list=[] #一级页面中获取的数据(二级页面地址)存放在此列表 self.chapter_list=[] #二级页面中获取的数据(三级页面网址和章节名称)存放此列表 def get_url(self,url): while True: try: res=requests.get(url) if res.status_code==200: #返回http请求状态码 200为正常 res.encoding = res.apparent_encoding #页面编码方式使用页面声明的编码方式 print("页面获取成功!") return res.text else: print("页面返回异常!",res.status_code) except: print("页面获取错误!") def get_book_list(self,url): res =self.get_url(url) html=BeautifulSoup(res,"html.parser") a_list = html.find_all("a",{"class":"name"}) for a in a_list: self.book_list.append(a["href"]) self.book_list=[self.root_url+i for i in self.book_list] self.book_list.remove("http://10.1.88.252:7000/庆余年") def get_chapter_list(self,url): res =self.get_url(url) html = BeautifulSoup(res,"html.parser") a_list = html.find_all("a",{"class":"chapter"}) for a in a_list: self.chapter_list.append((a["href"],a.text.replace("\n",""))) def get_content(self,chapter): url =self.root_url +chapter[0] print(url) book_name = chapter[0].split("/")[1] print(book_name) if not os.path.exists(book_name): os.mkdir(book_name) res =self.get_url(url) html = BeautifulSoup(res,"html.parser") content = html.find("div",{"id":"content"}).text print(content) path=os.path.join(book_name,chapter[1]) with open(path,"w",encoding="utf8")as f: f.write(content) def main(self): self.get_book_list(self.root_url) for book in self.book_list: self.get_chapter_list(book) for chapter in self.chapter_list: self.get_content(chapter) book_s= book_spider("http://10.1.88.252:7000") book_s.main()代码解读

2023-06-02 上传