我的(Python)AppEngine程序从另一个站点获取一个网页以从中抓取数据 - 但似乎第三方网站正在阻止来自Google App Engine的请求! - 我可以从开发模式获取页面,但不能在部署时获取。
我可以使用某种免费代理解决这个问题吗?
我可以使用免费代理来隐藏我从App Engine请求的事实吗?
如何查找/选择代理? - 我需要什么? - 如何执行提取?
还有什么我需要知道或注意的吗?
答案 0 :(得分:2)
正确的方法可能是请求您正在抓取的网站所有者的许可。
即使您使用代理服务器,通过代理服务器发出的请求仍有可能最终被阻止。
答案 1 :(得分:1)
您是否考虑过更改用户代理?
result = urlfetch.fetch(u,headers = {'User-Agent': "Mozilla/5.0"},allow_truncated=True)
API将始终附加“AppEngine-Google;”到用户代理,但如果限制不是基于IP地址范围,则可能会有效。
答案 2 :(得分:1)
您所说的是app引擎sdk中的有效错误。查看http://code.google.com/p/googleappengine/issues/detail?id=544的bug更新,以及java和python的解决方法。
答案 3 :(得分:0)
我目前遇到了同样的问题,我正在考虑这个解决方案(尚未尝试过):
- >开发一个可以获取所需内容的应用 - >在本地运行它 - >从您的初始
获取本地服务器所以代理是您知道未阻止的计算机
让我知道它是否有效!
答案 4 :(得分:0)
公平地说,如果他们不希望你这样做那么你可能不应该这样做。这是不好意思。
但如果您真的想这样做,最好的方法是创建一个简单的代理脚本,并在VPS或具有足够好连接的计算机上运行它。
基本上,您将REST API从服务器公开到GAE,然后服务器只是向目标站点发出所有相同的请求并返回输出。