通过免费代理在AppEngine中抓取

4 投票
5 回答
913 浏览
提问于 2025-04-15 17:55

我写的这个(Python)AppEngine程序是用来从其他网站获取网页数据的,但看起来那个第三方网站在屏蔽来自Google App Engine的请求!我在开发模式下可以成功获取页面,但一旦部署就不行了。

我能不能用某种免费的代理来绕过这个问题呢?

我能不能用免费的代理来隐藏我是在App Engine上请求的事实?

我该如何找到或选择一个代理呢?我需要什么?我该怎么进行数据获取?

还有什么其他需要知道的或者需要注意的地方吗?

5 个回答

1

你说的这个问题确实是应用引擎SDK中的一个有效错误。你可以查看一下这个链接 http://code.google.com/p/googleappengine/issues/detail?id=544,里面有关于这个错误的更新信息,还有针对Java和Python的解决方法。

1

你有没有想过换一下用户代理(user-agent)呢?

result = urlfetch.fetch(u,headers = {'User-Agent': "Mozilla/5.0"},allow_truncated=True) 

这个API会在用户代理后面加上“AppEngine-Google;”,不过如果限制不是根据IP地址范围来判断的话,这样做可能会有效。

2

可能正确的方法是先向你要抓取的网站的拥有者请求权限。

即使你使用了代理,仍然有很大可能性通过代理发送的请求也会被封锁。

撰写回答