用PHP进行数据抓取

时间:2017-07-16 18:36:25

标签: php screen-scraping mining

我想用php抓数据。但我不明白我错在哪里。 我想收到“15,50 TL”文字。谢谢

<?php

function find($start, $close, $where)
{
    @preg_match_all('/' . preg_quote($start, '/') .
    '(.*?)'. preg_quote($close, '/').'/i', $where, $m);
    return @$m[1];
}

$url = "https://www.bynogame.com/Knight-Online/Gold-Bar";

$fulldata = file_get_contents($url);

$akara = find('<td align="center" nowrap="nowrap">','<form name="urunayrinti38154"></form></td>',$fulldata);

print_r($akara);

?>

1 个答案:

答案 0 :(得分:0)

问题是页面中找不到$start$close字符串。

<td align="center" nowrap="nowrap">代码名称和td属性之间有一个align 2个空格,并且有一个<form name="urunayrinti38154">字符串没有其余的。

恕我直言,更好的方法是使用DOM解析库,例如Symfony的DomCrawler component,或PHP自己的XML Manipulation函数,例如DOMDocument::loadHTMLFile()