【发布时间】:2014-10-21 07:18:19
【问题描述】:
当使用 mechanize 从 craigslist 中提取一些数据时,我在 Heroku 上不断收到以下错误:status: Net::HTTPForbidden 1.1 403 Forbidden
我想知道有什么方法可以防止这种情况发生,我的设置如下:
agent = Mechanize.new do |agent|
agent.log = @logger
agent.user_agent_alias = 'Mac Safari'
agent.robots = false
end
有什么想法吗?
【问题讨论】:
-
你必须弄清楚他们为什么禁止它。 403 只是“不”,没有真正的解释。尝试简化并使用 OpenURI 抓取一些页面,看看会发生什么。然后尝试使用各种用户代理签名进行机械化。或者,联系他们并询问他们是否有 API。
-
可能是基于地理位置、引荐来源网址、cookies,或者您可能只是太用力了。
-
你每隔 10 分钟就会刮一次,这肯定会引起注意。是否有解决方法,可能会更改用户代理?我尝试每次刮掉 cookie,但仍然遇到 403 错误。
标签: ruby heroku web-scraping mechanize mechanize-ruby