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许可证。
ob娱乐下载Symfony 5.4支持通过私人Packagist