加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP网页抓取

发布时间:2020-12-13 22:04:11 所属栏目:PHP教程 来源:网络整理
导读:我使用php web scraping,我希望在星期日得到价格(3.65)下面的html代码: tr class="odd" td bSunday/b Info div class="test"test/div /td td euro; 3.65 * /td /tr 但我没有找到最好的正则表达式来做到这一点…… 我用这个PHP代码: ?php $data = file_get_
我使用php web scraping,我希望在星期日得到价格(3.65)下面的html代码:

<tr class="odd">
       <td >
           <b>Sunday</b> Info
           <div class="test">test</div>
       </td>
       <td>
       &euro; 3.65 *

       </td>
    </tr>

但我没有找到最好的正则表达式来做到这一点……
我用这个PHP代码:

<?php
        $data = file_get_contents('http://www.test.com/');

        preg_match('/<tr class="odd"><td ><b>Sunday</b> Info<div class="test">test</div></td><td>&euro; (.*) *</td></tr>/i',$data,$matches);
        $result = $matches[1];
    ?>

但没有结果……正则表达式有什么问题? (我认为这是因为新的行/空格?)

解决方法

问题是标签之间的空间.
有一个换行符,标签和/或空格.

你的正则表达式与他们不匹配.

你还需要为多行设置你的preg_match!

我认为使用xpath进行抓取更容易.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读