selenium 文档 crawlab 爬虫部署平台,有中文文档,编写好之后可以使用该平台部署爬虫,每个爬虫的文件都是独占的。不能共享(包括相同的工具类等)
selenium 是支持 web 浏览器自动化的一系列工具和库的综合项目。Selenium 的核心是 WebDriver,这是一个编写指令集的接口,可以在许多浏览器中互换运行。
在 windows 上来说,开始运行后,会打开一个浏览器然后里面展示网页,如下图所示
可以通过 WebDriver 发起指令,比如:打开一个指定的网址、点击上面的一个按钮等。
然后就可以利用它的这些特性,来完成爬虫的功能。
XPath 入门
W3school 入门 XPath 教程
下面是最常用的节点选取
表达式 | 描述 |
---|---|
nodename | 选取此节点的所有子节点。 |
/ | 从根节点选取。 |
// | 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。 |
. | 选取当前节点。 |
.. | 选取当前节点的父节点。 |
@ | 选取属性。 |
对于这个例子来说
<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book>
<title lang="eng">Harry Potter</title>
<price>29.99</price>
</book>
<book>
<title lang="eng">Learning XML</title>
<price>39.95</price>
</book>
</bookstore>
路径表达式 | 结果 |
---|---|
bookstore | 选取 bookstore 元素的所有子节点。 |
/bookstore | 选取根元素 bookstore。 注释:假如路径起始于正斜杠( / ),则此路径始终代表到某元素的绝对路径! |
bookstore/book | 选取属于 bookstore 的子元素的所有 book 元素。 |
//book | 选取所有 book 子元素,而不管它们在文档中的位置。 |
bookstore//book | 选择属于 bookstore 元素的后代的所有 book 元素,而不管它们位于 bookstore 之下的什么位置。 |
//@lang | 选取名为 lang 的所有属性。@lang=’xxx’ 则表示完全符合这个相等 |
但是对于包含某一个 CSS 的场景,就需要借助 XPath 的 函数 功能了,比如下面这个需求
// 所有 class 属性包含 self-end 值的 div,并且查找该 div 下的所有 class 包含 P2-Regular 值的 div 元素
//div[contains(@class,'self-end')]//div[contains(@class,'P2-Regular')]