【发布时间】:2013-06-01 10:22:44
【问题描述】:
我正在尝试抓取 http://www.imdb.com/find?q=Yek+mard%2C+yek+khers&s=all 的 HTML。结果集包含一个单一的结果,在类result_text 中。所以我输入链接,获取该链接中的文本,在这种情况下,如 Firebug 所示,是A Man, a Bear。但奇怪的是,下面的代码打印出Yek mard, yek khers。谁能帮助我如何获取我在浏览器中看到的文本?
$name = "Yek mard, yek khers";
$uri = URI->new("http://www.imdb.com/find?q=".uri_escape($name)."&s=all");
my $response = $ua->get( $uri );
my $root = HTML::TreeBuilder->new_from_content($response->decoded_content);
@results = $root->find_by_attribute("class","result_text");
$link = $results[0]->find_by_tag_name("a");
say $link->as_HTML();
# This should print <a href="/title/tt0122857/?ref_=fn_al_tt_1">A Man, a Bear</a>
# but prints <a href="/title/tt0122857/?ref_=fn_al_tt_1">Yek mard, yek khers</a>
【问题讨论】:
-
对于给定的 URL,我也得到了
Yek mard, yek khers。您能否查看您使用浏览器发送的标头,尤其是Accept-Language?返回页面的Content-language也可能很有趣。 -
嗯,我不知道如何检查,或者发送请求时如何将其设置为英文.. :(
-
如果你看源码,在结束标签之前有一个空格,不知道它是否与它有任何关系,但可能值得一看。您是否尝试过获取所有链接,然后使用类似 $href = $link->look_down(sub{ $_[0]-> tag() eq 'a'});然后当你点击正确的时候,打印 $href->as_text
-
我在 Firebug 中看到的标签是 男人,熊 .你说的是哪个空间?
-
Firebug“清理东西”,看源码,看空间? 人,熊
标签: perl screen-scraping lwp