Host:链接的主机
Referer:来源、防盗链接, 类似想我们现在的行程码你是从来个地方来的
User-Agent:用户代理,浏览器的身份标识,可以理解为你的身份证
那么这些东西都是我们在发送请求需要带上证明自己身份的东西
请求头加密
请求头的东西并不是一成不变的有时候会有一些特殊的字段,那我们需要加什么请求头也是根据你的网址来的,那我们看到的请求字段可能是加密的如下图,那么我们要是遇见这种加密的我们又该如何进行参数的传递呢?就需要进行js逆向(js逆向就不在这里开展讲解)
请求方式
请求方式是用来区分网址的请求规律,常见的有get和post,get一般是获取网页的数据,post需要提交数据给服务器(比方说你登录的时候需要把账户和密码进行传递)
提取数据
通过爬虫获取的数据分为结构化数据和非结构化数据
结构化数据:json、xml
非结构数据:html
针对我们获取的数据的不同提取数据的方式也不一样,要是我们获取的是json数据我们可以直接将其转换成字典类型进行获取数据,要是我们获取的是html的数据我们可以通过xpath、bs4、pyquery、正则等方式进行提取,这里我们重点学习xpath
XPath 术语
节点(Node)
在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点。XML 文档是被作为节点树来对待的。树的根被称为文档节点或者根节点。
请看下面这个 XML 文档:
上面的XML文档中的节点例子:
基本值(或称原子值,Atomic value)
基本值是无父或无子的节点。
基本值的例子:
项目(Item)
项目是基本值或者节点。
节点关系
父(Parent)
每个元素以及属性都有一个父。
在下面的例子中,book 元素是 title、author、year 以及 price 元素的父:
子(Children)
元素节点可有零个、一个或多个子。
在下面的例子中,title、author、year 以及 price 元素都是 book 元素的子:
同胞(Sibling)
拥有相同的父的节点
在下面的例子中,title、author、year 以及 price 元素都是同胞:
先辈(Ancestor)
某节点的父、父的父,等等。
在下面的例子中,title 元素的先辈是 book 元素和 bookstore 元素:
后代(Descendant)
某个节点的子,子的子,等等。
在下面的例子中,bookstore 的后代是 book、title、author、year 以及 price 元素:
XPath 使用路径表达式来选取 XML 文档中的节点或节点集。节点是通过沿着路径 (path) 或者步 (steps) 来选取的。
XML 实例文档
我们将在下面的例子中使用这个 XML 文档。
选取节点
XPath 使用路径表达式在 XML 文档中选取节点。节点是通过沿着路径或者 step 来选取的。
下面列出了最有用的路径表达式:
实例
在下面的表格中,我们已列出了一些路径表达式以及表达式的结果:
谓语(Predicates)
谓语用来查找某个特定的节点或者包含某个指定的值的节点。
谓语被嵌在方括号中。
实例
在下面的表格中,我们列出了带有谓语的一些路径表达式,以及表达式的结果:
选取未知节点
XPath 通配符可用来选取未知的 XML 元素。
实例
在下面的表格中,我们列出了一些路径表达式,以及这些表达式的结果:
XPath 表达式可返回节点集、字符串、逻辑值以及数字。
XPath 运算符
下面列出了可用在 XPath 表达式中的运算符:
XML实例文档
我们将在下面的例子中使用这个 XML 文档:
“books.xml” :
加载 XML 文档
所有现代浏览器都支持使用 XMLHttpRequest 来加载 XML 文档的方法。
针对大多数现代浏览器的代码:
针对古老的微软浏览器(IE 5 和 6)的代码:
选取节点
不幸的是,Internet Explorer 和其他处理 XPath 的方式不同。
在我们的例子中,包含适用于大多数主流浏览器的代码。
Internet Explorer 使用 selectNodes() 方法从 XML 文档中的选取节点: