• 注册
  • php爬虫框架 关注:2 内容:8

    表格采集

  • 查看作者
  • 打赏作者
  • 拉黑名单
    • 由于网页中的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] => 作家

              )

      )

      [s-66]

      456

      45645

      回复
      你需要登录,才能进行发帖操作
    • 单栏布局 帖子间隔 侧栏位置: