- Get Started
- 基础
- 进阶
- 技巧
- 插件推荐
- API
- Get Started
- 基础 API
- QueryList html($html)
- string getHtml($rel = true)
- QueryList rules(array $rules)
- QueryList range($selector)
- QueryList removeHead()
- QueryList query(Closure $callback = null)
- Collection getData(Closure $callback = null)
- Array queryData(Closure $callback = null)
- QueryList static getInstance()
- void destruct()
- void destructDocuments() 静态方法
- QueryList pipe(Closure $callback)
- 特殊 API
- 高级 API
- 默认插件
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
表格采集
由于网页中的table
表格每一行、每一列没有明显的class
或id
,让很多人对采集表格感觉束手无策。
下面演示如何通过伪选择器
来采集表格。
示例
采集代码: use QL\QueryList;
$html =<<<STR
<div>
<table>
<tr>
<td>姓名</td>
<td>年龄</td>
<td>职位</td>
</tr>
<tr>
<td>Rae</td>
<td>29</td>
<td>医生</td>
</tr>
<tr>
<td>Marsh</td>
<td>56</td>
<td>牧师</td>
</tr>
<tr>
<td>Solomon</td>
<td>18</td>
<td>作家</td>
</tr>
</table>
</div>
STR;
$table = QueryList::html($html)->find('table');
// 采集表头
$tableHeader = $table->find('tr:eq(0)')->find('td')->texts();
// 采集表的每行内容
$tableRows = $table->find('tr:gt(0)')->map(function($row){
return $row->find('td')->texts()->all();
});
print_r($tableHeader->all());
print_r($tableRows->all());
采集结果:Array
(
[0] => 姓名
[1] => 年龄
[2] => 职位
)
Array
(
[0] => Array
(
[0] => Rae
[1] => 29
[2] => 医生
)
[1] => Array
(
[0] => Marsh
[1] => 56
[2] => 牧师
)
[2] => Array
(
[0] => Solomon
[1] => 18
[2] => 作家
)
)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论