最近的一项研究爬行动物,使用PHP,安装了波塞尔库 的symfony / DOM-履带分析抓取到页面的HTML元素,以提取所需的内容。因为没有中国的文件,也很少有使用相关中国的数据的这个库的,所以在使用的过程中也遇到了一些坑,其中的经验和遇到的问题和解决方案的过程中记录它。


  • DomCrawler工作:
    工作原理是爬进一个HTML页面到由字符串实例DOM对象 XPath的 或语法 CSS选择器 语法选择DOM节点之一,类似于相同的jquery的CSS选择,提取属性或页面元素的值,页面的基本内容可以得到任何所希望的,非常强大的,是爬行动物施加到html元素分析和内容提取武器。

  • 安装:

  • 使用:
    1. 简单易用

  1. CSS选择器语法
    语法规则如下:

如果你想选择页面的某些元素,如何写CSS选择器语法的内容?
有一个简单的方法,谷歌Chrome,例如,开放式 ,例如,我想要去 百度 这个按钮的内容

F12 开发人员工具打开,将光标定位到元素,元素如下:

想要获得内容的图像上面跨度,点击跨度>右键>复制>副本选择,然后复制的CSS选择器按钮。
然后使用以下规则:

将能获得此范围的内容,去如何进一步处理,元素的内容,如访问元素属性值,要素,内容,后面详细说。
当然,我们有时一个元件不具有页ID或类选择,但也可以在根据上述方法获得的CSS选择,不同之处在于这样的选择可能是相对长的,如下所示:


  1. XPath的选择器语法
    使用CSS选择器有时会更谦卑,因为复制出来的选择将是更长的时间,有时不一定准确,在网页源代码一起观察,有时在一些特殊情况下,并没有办法得到想要的内容,如以下要求:得到一个链接到包含关键字的所有标签href属性的页面这种传统的CSS选择更困难的事,花费太多的精力,这一次XPath选择玩,不得不说,XPath的很坚强,很强大,几乎能得到你想要得到的任何内容页,我在这里说几个典型常见的使用它,如何使用可以参考

有关使用XPath语法的更多细节,我们XPATH一些语法规则请参考下面的教程,多用用就知道。
下面我介绍一个谷歌的XPath浏览器插件在谷歌应用商店下载 XPath的帮手(如果需要反抢),如下所示:

使用非常简单,可以在页面被打开,以检测其自身的XPath表达式是正确的,有用的。


  1. 后的由所述选择器元件获取的内容进一步处理
    为了得到一个页面 体>点 在进一步处理之后的元素的含量作为一个例子:

有时所获取的多个节点,每个周期需要处理节点可以使用以下循环:


  • 使用问题和解决方案:
    问题1:安装耍大牌 DOM履带式 不使用后 XPath选择该呼叫 $ Crawler-> filterXPath( ‘// XXX’) 我们会抱怨,怎么解决?
    解:波塞尔安装CSS选择器,PHP的介绍页面CssSelectorConverter

问题2:新的履带($ HTML) 返回会出现乱码的结果,如何解决?
解:这应该编码相关的页面,因此可以使用下面的方法,初始化的履带,然后添加节点。

问题3:当使用CSS选择器,称按照上述步骤获得,为什么有时会更少,会得到一个错误 当前节点列表是空的,怎么解决?
因为有时使用的开发工具获取CSS选择是不准确的,如访问以下内容:

我们查看网页源代码,也许下表是没有TBODY,下表可以直接TR,但为什么拷贝出来,通过开发工具选择拥有它,因为有时候在桌子上的HTML将自动TBODY来弥补在浏览器上,但是页面的源代码并没有,我们有时需要将所有的页面的源代码分析是否正确选择。


  • 参考文献:
    XPath的教程
    domcrawler英文文档
    symfony的手册

文/信息/ 79928853

本文链接:composer类库-HTML分析组件DomCrawler

您可能也会喜欢

友情链接:

心经唱诵 经文 大悲咒注音