如何将这种“ Python+Twill+Mechanizize”组合部署到“ Google App Engine”?
-
01-10-2019 - |
题
我一直在尝试通过我的登录和密码 Python 脚本到 eBay 登录页面。后来我希望此脚本从Google App引擎"
建议我使用”机械化“。不幸的是,这对我不起作用:
IDLE 1.2.4
>>> import re
>>> import mechanize
>>> br = mechanize.Browser()
>>> br.open("https://signin.ebay.com")
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
br.open("https://signin.ebay.com")
File "build\bdist.win32\egg\mechanize\_mechanize.py", line 203, in open
return self._mech_open(url, data, timeout=timeout)
File "build\bdist.win32\egg\mechanize\_mechanize.py", line 255, in _mech_open
raise response
httperror_seek_wrapper: HTTP Error 403: request disallowed by robots.txt
>>>
我早些时候试图使用 Python 和 斜纹 - 直到 一个支持者建议 我下载了最新版本的 机械化 然后执行以下步骤:
在我的计算机上找到以下文件夹:”c: python25 lib site-packages twill ether_packages _mechanize_dist"
将其名称更改为“_mechanize_dist_backup“(因此,全路应该是”C: python25 lib site-packages twill other_packages _mechanize_dist_backup")
复制“机械化“文件夹(位于”Mechanize-0.2.2“ - 我从中下载和解开的文件夹 “机械化”官方网站)并将其粘贴在c: python25 lib site-packages twill ether_packages“(完整的道路,因此,”c: python25 lib site-packages twill ether_packages Mechanagize")
将其名称更改为“_mechanize_dist“(完整的道路是”c: python25 lib site-packages twill elet_packages_mechanize_dist")
复制 ”客户端“文件”_mechanize_dist_backup“粘贴在里面”_mechanize_dist“(实际上,我发现了两个名称的文件”客户端“:一个是一个python文件,另一个是一个编译的python文件 - 我复制并粘贴了两个文件)。
执行所有这些步骤后,我试图登录到我的 eBay 来自 斜纹 外壳 Python 它起作用了!!!我什至可以登录我的 雅虎 邮箱以相同的方式检查我的邮件!
但是现在我有一个困境:我不知道如何将脚本部署到”Google App引擎".
较早 我被告知 如果我想在 应用引擎 项目,我只需要在部署时将它们包括在我的应用程序时 - 以防万一 斜纹, ,例如,我只需要复制 斜纹 文件夹到我的应用程序文件夹中并部署它。
但是现在我不仅有这个 斜纹 文件夹作为第三方库,但也将所有这些更改在C: Python25“ (在 ”c: python25 lib site-packages twill ether_packages“,确切地说),而我的应用程序文件夹 - 我拥有脚本的文件夹(”my_script.py“文件) - 位于”e“磁盘。
请有人在这里给我一些建议吗?
解决方案
至于GAE部署问题, @brilliant看起来像您要处理的代码都是纯Python 2.5(唯一真正阻止的问题是如果是 不是 - 不允许二进制扩展,不需要python 2.6或更高的代码,这就是此时的盖帽。
因此,在此假设下,与App Engine上的代码部署的唯一问题是所有代码, 不是 在 site-packages
(当然是GAE的 dev_appserver.py
绝对没有部署,nada,zilch),而是在您的GAE项目目录中(我建议所有.py文件的递归zip,尤其是在您之前删除所有.pyc文件 zip -r
它;-)。
总而言之,这只是一个适当的外壳命令的问题: cp -R
然后 zip -r
(可能更难在非异形外壳上,但是,嘿,即使在Windows上 能够 用Cygwin的狂欢来做到这一点...无论如何,这不是一个“开发”问题本身;-)。
其他提示
错误消息表明机械化正在为您遵守该站点的robots.txt文件。
如果您想自动访问其网站,则应使用eBay的API。如果您不这样做,并构建自己的解决方案忽略了robots.txt,当他们阻止您时,请不要感到惊讶,并向Google投诉有关来自您应用程序的App Engine的自动查询。