DOM获取

什么是DOM?

具体可以访问:HTML DOM 简介

看不懂也没关系,稍微了解一下即可。下面给出几个示例,也许你会更直观的明白。

假如一个网页的源代码如下所示

<div class="test">要取的内容</div>

如果你想取到div里面的内容,怎么写?

用DOM方式这样获取: div[class=test]。

这是最简单是示例了。再比如

<div id="test">要取的内容</div>

DOM写法:div[id=test]。 要是元素不是一个div,而是一个span,如下:

<span id="test">要取的内容</span>

也很简单,DOM写法:span[id=test]

稍微复杂一点的结构,如下

<div class="test"><span id="mytest">要取的内容</span></div>

DOM写法:div[class=test] span[id=mytest]

好了,四个例子,足以说明一切。现在你可以使用采集器获取绝大部分网页中你想要的内容了。如果你有耐心,请往下看

规则的简写

每次都输入div[class=test]或者span[id=test]这样的东西,太麻烦了。整理上面的几个例子,所以我们可以简写:

完整的写法 简写
div[class=test] div.test
div[id=test] div#test
span[id=test] span#test
div[class=test] span[id=mytest] div#test span#mytest

注意: div[class=aa bb] 像这样,一个class有两个值,这种情况下不能简写。

一些高级的写法

过滤 描述
属性 匹配具有指定属性的元素。如 div[id] 表示通过id属性 查找所有的
!属性 匹配不具有指定属性的元素。 如 div[!id] 表示 查找所有没有id属性的
[属性=value] 匹配具有指定属性值的元素。如 div[id=test] 表示查找id=test的div元素
[属性!=value] 匹配不具有指定属性值的元素。 如 div[id!=test] 表示查找id不等于test的div元素
[属性^=value] 匹配包含特定前缀的值的指定属性的元素。如 div[id^=test] 表示查找id前缀为test的div元素
[属性$=value] 匹配包含特定后缀的值的指定属性的元素。如 div[id$=test] 表示查找id后缀为test的div元素
[属性*=value] 匹配具有指定属性的元素,且该属性包含了一定的值。如 div[id*=test] 表示查找id包含test的div素

使用DOM获取列表链接

凡是获取列表链接,都分成两行,比如要获取如下的列表

html内容:

<ul class="page_list">
   <li><a href="detail.php?page=1">第1个链接</a></li>
   <li><a href="detail.php?page=2">第2个链接</a></li>
   <li><a href="detail.php?page=3">第3个链接</a></li>
   <li><a href="detail.php?page=4">第4个链接</a></li>
   <li><a href="detail.php?page=5">第5个链接</a></li>
   <li><a href="detail.php?page=6">第6个链接</a></li>
   <li><a href="detail.php?page=7">第7个链接</a></li>
   <li><a href="detail.php?page=8">第8个链接</a></li>
   <li><a href="detail.php?page=9">第9个链接</a></li>
   <li><a href="detail.php?page=10">第10个链接</a></li>
</ul>

DOM写法:

ul.page_list li
a

具体的地址:http://www.dxcer.com/demo/page_list.php
放入采集器中,测试如图:

其中,规则分成两行。第一行是循环区域,第二行是取里面的a标签。如果下面只有一个a标签,一般写a就行了。如果下面有几个a标签,需要进行额外的指定,比如

ul.page_list li
a.test

Copyright © DXC采集 2016 all right reserved,powered by Gitbook该文件修订时间: 2017-01-22 21:29:56

results matching ""

    No results matching ""