使用WWW :: Mechanize获取HTML导致“禁止”

时间:2010-12-11 19:05:12

标签: perl get www-mechanize

我想通过使用WWW :: Mechanize来获取imdb电影的内容。首先,我必须找到一种方法来找到相应的/ title / tt * url。当我有一部名为战斗俱乐部的电影时,我想访问此链接: * TTP://www.imdb.com/find S =所有&放大器; Q =战斗+俱乐部 出于某种原因,这已经失败了。下面是导致错误的行

$mech->get('http://www.imdb.com/find?s=all&q=fight+club');

错误消息:

  

错误GETing   http://www.imdb.com/find?s=all&q=fight+club:   禁

如果我写了像get(http://www.google.com)这样的内容,那就行了。使用imdb有什么区别?有关替代解决方案的任何建议吗?

2 个答案:

答案 0 :(得分:5)

IMDB可能会嗅探User-Agent字符串并拒绝WWW :: Mechanize请求。 “解决方案”是尊重他们阻止您以自动方式与网站互动的愿望。

(或者你可以非常仔细地阅读他们的terms and conditions,然后更改用户代理字符串)

  

许可IMDb内容;同意使用机器人和爬虫:如果您有兴趣获得我们明确的书面许可,将IMDb内容用于非个人(包括商业)用途,请访问我们的内容许可部分或联系我们的许可部门。我们允许在明确的书面同意下限制使用机器人和爬虫,例如来自某些搜索引擎的机器人和爬虫。如果您有兴趣获得我们在网站上使用机器人或爬虫的明确书面许可,请联系我们的许可部门。

答案 1 :(得分:0)

大卫是对的,这可能正在发生的事情。

但是你知道IMDB通过FTP提供了很多信息吗?并且他们有许多工具可以用来获取他们的信息而不是刮擦?

请参阅http://www.imdb.com/interfaces