我有一个来自其他网站的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的正则表达式吗?
答案 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);