从维基百科刮取信息

时间:2012-09-28 13:35:54

标签: php html web-scraping wikipedia yql

  

可能重复:
  Robust, Mature HTML Parser for PHP
  How to use wikipedia api if it exists?

我正在使用YQL从维基百科获取信息并将其存储在我的私人数据库中。例如,我正在抓取this页面。我需要页面上的所有电影名称。 我正在使用此代码:

HTML:

$.YQL("select * from html where url='http://en.wikipedia.org/wiki/Rajinikanth_filmography' and xpath='/html/body/div[3]/div[3]/div[4]/table'", function (data) {
            var str = data.query.results.table.tr;
            console.log(str);
            $.ajax({
                type: "POST",
                url: "db.php",
                data: {
                    sendingStr: str
                },
                success: function(data){
                    console.log(data);
                }
            });
        });

PHP:

$recv = $_POST['sendingStr'];
$arraySize = count($recv);
for ($i=1; $i < $arraySize; $i++) {
    foreach ($recv[$i]["td"][1] as $value) {
        foreach ($value as $val) {
            if(strlen($val["content"]) >= 3)
            {

                echo $val["content"] . "\n";

            }

        }
    }
}

这是我的问题 - 如果您在页面中注意到,表中的每一行都有几个行扫描。但是当我废弃它时,我只从每一行获得第一个值。我应该在代码中更改什么才能获得所有值?

0 个答案:

没有答案