html语义化
定义:
根据内容的结构化,选择合适的标签便于开发者阅读和写代码的同时让浏览器的爬虫和机器很好的解析。
原因:
在没有CSS的情况下,页面也能呈现出很好地内容结构、代码结构;
用户体验:例如title、alt用于解释名词或解释图片信息、label标签的活用;
有利于SEO:和搜索引擎建立良好沟通,有助于爬虫抓取更多的有效信息:爬虫依赖于标签来确定上下文和各个关键字的权重;
方便其他设备解析以意义的方式来渲染网页;
便于团队开发和维护,语义化更具可读性,可以减少差异化。
注意:
尽可能少的使用无语义的标签<div>
和<span>
;
在语义不明显时,既可以使用<div>
或者<p>
时,尽量用<p>
, 因为<p>
在默认情况下有上下间距,对兼容特殊终端有利;
不要使用纯样式标签,如:<b>
、<font>
、<u>
等,改用css设置;
需要强调的文本,可以包含在<strong>
或者<em>
标签中(浏览器预设样式,能用CSS指定就不用他们),strong默认样式是加粗(不要用b),em是斜体(不用i);
使用表格时,标题要用caption
,表头用thead
,主体部分用tbody
包围,尾部用tfoot
包围。表头和一般单元格要区分开,表头用th
,单元格用td
;
表单域要用fieldset
标签包起来,并用legend
标签说明表单的用途;
每个input标签对应的说明文本都需要使用label标签,并且通过为input设置id属性,在lable标签中设置for=someld来让说明文本和相对应的input关联起来;
<body>
<form>
<label for="male">Male</label>
<input type="radio" name="sex" id="male" />
<br />
<label for="female">Female</label>
<input type="radio" name="sex" id="female" />
</form>
</body>
</html>
SEO(Search Engine Optimization)的原理:
(通过网站的结构布局设计和网页代码优化,使前端页面既能让浏览器用户能够看懂,也能让“爬虫”看懂。):搜索引擎优化SEO是建立在用户搜索体验为中心的基础上,通过提高网页级别、建立合理的网站链接结构/目录结构、丰富网站内容及表达形式,使网站自身设计符合搜索引擎规则、对搜索引擎友好,进而在搜索引擎上获得较高的排序权重.它是通过研究搜索引擎对网页的抓取规则,以及搜索结果排序算法,来对网页进行相关的优化,使其更多的内容被搜索引擎收录,同时针对关键词获得搜索结果中更高的排名,从而提高网站访问量的一种策略。
爬虫:
是一种向网站发起请求,获取资源后分析并提取有用数据的程序,是搜索引擎的重要组成部分。网络爬虫为搜索引擎从万维网下载网页。一般分为传统爬虫和聚焦爬虫。
例如:
【用户获取网络数据的方式:
浏览器提交请求->下载网页代码->解析成页面。而网页代码中便包含了我们想要的数据
爬虫要做的就是:
模拟浏览器发送请求(获取网页代码)->提取有用的数据->存放于数据库或文件中】
怎么去写一个爬虫:
- 定义已访问队列,待访问队列和爬取得URL的哈希表,包括出队列,入队列,判断队列是否空等操作
- 定义DownLoadFile类,根据得到的url,爬取网页内容,下载到本地保存。此处需要引用commons-httpclient.jar,commons-codec.jar,commons-logging.jar。
- 定义HtmlParserTool类,用来获得网页中的超链接(包括a标签,frame中的src等等),即为了得到子节点的URL。需要引入htmlparser.jar
- 编写测试类MyCrawler,用来测试爬取效果