2.2.1网页的组成
三大组成
(1)HTML (比喻人的骨架)
(2)CSS (比喻人的皮肤)
(3)javescript(比喻人的肌肉)
一:HTML
描述网页的一种语言(超文本标记语言)
包含文字,按钮,图片,视频等各种复杂元素。
图片 img标签
视频 Video标签
段落 p标签
等
通过dir嵌套组合
各种标签通过不同排列和嵌套形成网页的框架。
例如百度,复杂的层次关系,形成网页架构。
二:CSS
层叠样式表
层叠指HTML引用的数个样式文件
(发生冲突时,浏览器能层叠顺序处理)
样式指网页中文字大小,颜色,元素,间距,排列等。
CSS是目前唯一的网页页面排版样式标准
CSS选择器
样例:#head_wrapper.s-ps-islite.s-p-top{
position:absolute:
bottom:40px
width:100%
height:181px
head-wrapper 是ID
s-ps-islite 是节点
s-p-top是内部节点
position 指定这个元素的绝对布局
bottom元素的下边距
width 宽度
height 元素的高度
用大括号括起来,前面加上CSS选择器。括号内有位置宽度高度等样式
三 java script 脚本语言
HTML和CSS配合使用
静态信息缺乏交互性
实现实时动态及交互的页面功能
单独加载文件,后缀为JS
HTML定义了网页的内容和结构
CSS描述了网页的布局
Jave script定义了网页的行为
2.2.2 网页的结构
This is a DemoHello,this is a paragraph.
title标签定位网页的标题 显示在网页的选项卡中
body则在网页正文显示内容
div标签定义了网页中的区块
id是container 非常常用
id的内容是网页中唯一的
class为wrapper 也是非常常用的
2.2.3节点树及节点间的关系
在HTML中所有的标签定义的内容都是节点,构成了一个HTML DOM树
DOM是什么 是W3C(万维网联盟)的标准即文档对象模型,它定义了访问HTML和XML文档的标准。
w3c被分为3个不同部分
核心DOM 针对任何结构化文档的标准模型
XML DOM 针对XML文档的标准模型
HTML DOM 针对HTML文档的标准模型
根据HTML DOM标准 HTML所有内容都是节点。
整个文档是一个文档节点
每个HTML元素是元素节点
HTML元素内的文本是文本节点
每个HTML属性是属性节点
注释是注释节点
节点树彼此拥有层级关系 常用父(parent),子(child),兄弟(sibling)等术语描述这些关系
顶端节点为根(root) 除了根节点,每个节点都有父节点,同时拥有任意数量的子节点或兄弟节点。
2.2.4选择器
我们使用选择器来定位节点 CSS,文中主要讲述了 CSS选择器的语法规则
文中还介绍了另外一种选择器 Xpath 也比较常用。
2.3爬虫的基本原理
互联网是一张大网
爬虫就是爬行的蜘蛛
网的节点比作是一个个网页,爬虫经过相当于访问了该页面,并获取信息。
2.3.1爬虫概述
爬虫就是获取网页并提取和保存信息的自动化程序。
1,获取网页
获取源代码(包含部分有用信息)
构造一个请求并发送给服务器,接受并解析出来,非常关键。
python提供了很多库,例如urllib,requests等实现HTTP请求操作
2提取信息
通用正则表达式提取(万能)
另外网页结构有一定的规则(根据网页的节点属性,CSS选择器或者Xpath来提取网页信息的库,如(Beautiful,soup,pyquery,lxml等)
提取信息非常重要
3保存数据
一:保存TXT或json文本
二:保存到数据库如Mysql和MongoDB等
三:保存到远程服务器,如SFTP进行操作
4自动化程序
代替人 确保高效运行
2.3.2能抓怎么样是数据
一:最常抓取 HTML源代码
二:JSON字符串,API接口大多数常用
三:二进制数据,图片,视频,音频
四:各种扩展名的文件,如css,javescript等
2.3.3 Java Script 渲染界面
用urllib或requests抓取网页时得到的和看到的不一样(非常常见的问题)
因为网页采用了Ajax,前端模块化工具来构建。都是Java script渲染出来的
原始的HTML是一个空壳。
对于这种可以分析后台Ajax接口,也可使用Selenium,Splash实现JavaScript渲染。