DOM爬虫
编辑本页DOM爬虫
每次向客户端发出请求时,都会返回一个爬虫实例。它允许您遍历HTML或XML文档:选择节点、查找链接和表单以及检索属性或内容。
遍历
像jQuery一样,爬虫也有遍历HTML/XML文档的DOM的方法。例如,下面查找all输入(type =提交)
元素,选择页面上的最后一个元素,然后选择它的直接父元素:
1 2 3 4 5
$newCrawler=$履带->过滤器(的输入(type =提交))->最后一个()->父母()->第();
还有许多其他方法可用:
-
过滤器(“h1.title”)
- 匹配CSS选择器的节点。
-
filterXpath (h1)
- 匹配XPath表达式的节点。
-
eq (1)
- 节点获取指定索引。
-
第()
- 第一个节点。
-
最后一个()
- 最后一个节点。
-
兄弟姐妹()
- 兄弟姐妹。
-
nextAll ()
- 所有的兄弟姐妹。
-
previousAll ()
- 所有前面的兄弟姐妹。
-
父母()
- 返回父节点。
-
孩子()
- 返回子节点。
-
减少(λ)
- 可调用对象不返回false的节点。
因为这些方法都返回一个new履带
实例,你可以通过链接方法调用来缩小你的节点选择:
1 2 3 4 5 6 7 8 9
$履带->过滤器(“标题”)->减少(函数($节点,$我){如果(!$节点->attr (“类”)) {返回假;}})->第();
提示
使用count ()
函数获取爬虫中存储的节点数:count($履带)
提取信息
爬虫可以从节点中提取信息:
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
//返回第一个节点的属性值$履带->attr (“类”);//返回第一个节点的值$履带->文本();//如果节点不存在,返回默认文本$履带->文本(“默认文本内容”);//传递TRUE作为text()的第二个参数,以删除所有额外的空白,包括//内部的(例如:" Foo \n bar baz \n "返回为" Foo bar baz")$履带->文本(零,真正的);//提取所有节点的属性数组// (_text返回节点值)//返回爬虫中每个元素的数组,//每个带有值和href$信息=$履带->提取([“_text”,“href”]);//为每个节点执行一个lambda并返回一个结果数组$数据=$履带->每个(函数($节点,$我){返回$节点->attr (“href”);});
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。