PHP:imdb刮刀海报

时间:2013-04-06 14:59:48

标签: php scraper

我有一个来自其他网站的iMDb-Scraper。它工作得非常好,现在iMDb改变了它的html输出,正则表达式再也找不到海报了。我是正则表达式的菜鸟,所以也许有人可以帮助我

这是

$arr['poster'] = $this->match('/img_primary">.*?<img src="(.*?)".*?<\/td>/ms', $html, 1);

和功能(可能不感兴趣)

function match_all($regex, $str, $i = 0) {
    if(preg_match_all($regex, $str, $matches) === false)
        return false;
    else
        return $matches[$i];

这是iMDb的具体HTML输出

<td rowspan="2" id="img_primary">
<div class="image">
<a href="/media/rm3465715968/tt1905041?ref_=tt_ov_i" > 
<img height="317"
     width="214"
     alt="Fast and the Furious 6 (2013) Poster"
     title="Fast and the Furious 6 (2013) Poster"
     src="http://ia.media-imdb.com/images/M/MV5BMTM3NTg2NDQzOF5BMl5BanBnXkFtZTcwNjc2NzQzOQ@@._V1_SX214_.jpg"
    itemprop="image" />
        </a>
</div></td>

有人可以更改我得到jpg的正则表达式吗?

1 个答案:

答案 0 :(得分:0)

如果您为

更改了该怎么办?
'/img_primary">.*?<img.*?src="(.*?)".*?<\/td>/ms'

这对我有用:

<?php
error_reporting(E_ALL);
ini_set('display_errors',1);

$regexp = '/img_primary">.*?<img.*?src="(.*?)".*?<\/td>/ms';

$string = file_get_contents('test.html');

$matches = array();
preg_match_all($regexp,$string,$matches);
var_dump($matches);