我想通过使用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有什么区别?有关替代解决方案的任何建议吗?
答案 0 :(得分:5)
IMDB可能会嗅探User-Agent字符串并拒绝WWW :: Mechanize请求。 “解决方案”是尊重他们阻止您以自动方式与网站互动的愿望。
(或者你可以非常仔细地阅读他们的terms and conditions,然后更改用户代理字符串)
许可IMDb内容;同意使用机器人和爬虫:如果您有兴趣获得我们明确的书面许可,将IMDb内容用于非个人(包括商业)用途,请访问我们的内容许可部分或联系我们的许可部门。我们允许在明确的书面同意下限制使用机器人和爬虫,例如来自某些搜索引擎的机器人和爬虫。如果您有兴趣获得我们在网站上使用机器人或爬虫的明确书面许可,请联系我们的许可部门。
答案 1 :(得分:0)
大卫是对的,这可能正在发生的事情。
但是你知道IMDB通过FTP提供了很多信息吗?并且他们有许多工具可以用来获取他们的信息而不是刮擦?