0

我一直在尝试将我的登录名和密码从Python脚本传递到eBay登录页面。后来我希望这个脚本从“谷歌应用引擎”运行

有人建议我使用“机械化”。不幸的是,它对我不起作用:


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斜纹布- 直到一位支持者建议我下载最新版本的mechanize然后执行以下步骤,它也不起作用:

  1. 在我的计算机上找到以下文件夹:“ C:\Python25\Lib\site-packages\twill\other_packages\_mechanize_dist

  2. 将其名称更改为“ _mechanize_dist_backup ”(因此,完整路径应为“ C:\Python25\Lib\site-packages\twill\other_packages\_mechanize_dist_backup ”)

  3. 复制“ mechanize ”文件夹(位于“ mechanize-0.2.2 ” - 我从“mechanize”官方网站下载并解压缩的文件夹)并将其粘贴到“ C:\Python25\Lib\site-packages \twill\other_packages ”(完整路径,因此是“ C:\Python25\Lib\site-packages\twill\other_packages\mechanize ”)

  4. 将其名称更改为“ _mechanize_dist ”(完整路径为“ C:\Python25\Lib\site-packages\twill\other_packages_mechanize_dist ”)

  5. 从“ _mechanize_dist_backup ”复制“ ClientForm ”文件并将其粘贴到“ _mechanize_dist ”中(实际上,我发现有两个名为“ ClientForm ”的文件:一个是python文件,另一个是编译的python文件 - 我复制并粘贴了两个他们)。

执行完所有这些步骤后,我尝试从Python中的斜纹外壳登录到我的eBay帐户,它成功了!!!我什至可以用同样的方式登录我的雅虎邮箱并查看我的邮件!

但是现在我有一个难题:我不知道如何将我的脚本部署到“ Google App Engine ”。

早些时候我被告知,如果我想在App Engine项目中使用第三方库,我只需在部署应用程序时将它们包含在我的应用程序中 - 例如,如果使用twill,我只需要复制twill文件夹进入我的应用程序的文件夹并部署它。

但是现在我不仅将这个斜纹文件夹作为要包含的第三方库,而且在“ C:\Python25 ”中执行的所有这些更改(在“ C:\Python25\Lib\site-packages\twill\other_packages ”,准确地说),而我的应用程序文件夹——我的脚本所在的文件夹(“ my_script .py”文件)——位于“ E ”磁盘上。

有人可以在这里给我一些建议吗?

4

2 回答 2

2

错误消息表明 mechanize 正在为您遵守站点的 robots.txt 文件。

如果您想以自动方式访问他们的网站,您应该使用 eBay 的 API。如果您不这样做,并构建自己的忽略 robots.txt 的解决方案,当他们阻止您时不要感到惊讶,并向 Google 抱怨来自 App Engine 的来自您的应用的自动查询。

于 2010-09-08T19:26:11.453 回答
2

至于GAE部署问题,@brilliant,看起来你正在处理的代码都是纯python 2.5(唯一真正阻塞的问题是如果不是——不允许二进制扩展,不允许需要Python 2.6或更高版本的代码,而这正是此时 GAE 上的方式)。

因此,在这种假设下,在 App Engine 上部署代码的唯一问题是拥有所有代码,而不是site-packages(当然 GAEdev_appserver.py完全没有部署任何代码,nada,zilch),而是在你的 GAE 项目目录中(我建议所有 .py 文件的递归 zip,仅 - 删除所有 .pyc 文件,特别是在zip -r它之前;-)。

总而言之,这只是几个适当的 shell 命令的问题:cp -Rthen zip -r(在非 unixy shell 上可能更难,但是,嘿,即使在 Windows 上,你也可以使用 cygwin 的 bash 来做到这一点......无论如何,这几乎不是本身就是一个“发展”问题;-)。

于 2010-09-08T21:34:06.673 回答