最近需要采集信息,因为比较熟悉php,所以想使用php来采集信息,python虽然更主流,但是php我更熟悉,写起来顺手,而且php完全可以采集。
php 里也有xpath类库。
通过xpath类库DOMDocument,DOMXPath 即可。
最关键的方法就是 xpath.query()。
这个方法3个参数,常用的是前两个,$expression 和 $contextnode,expression 就是xpath的路径了,contextnode是上下文节点。比如你之前用query已经查出来了一个节点。你使用query,查询这个节点下的某些内容这个时候,就可以设置 contextnode这个参数。表达式的开头,要使用点+斜杠(./)的方式 ,表示冲当前节点下面开始查找。
代码如下:
$dom = new \DOMDocument();
// 从一个字符串加载HTML
@$dom->loadHTML($html);
// 使该HTML规范化
$dom->normalize();
// 用DOMXpath加载DOM,用于查询
$xpath = new \DOMXPath($dom);
$xpath->query('//div[@class="aaa"]');