2024-06-06 10:26:25 发布
网友
我想自动化与网页的交互。我一直在使用pycurl直到现在,但最终网页将使用javascript,所以我正在寻找替代品。一个典型的交互是“打开页面,搜索一些文本,点击一个链接(打开一个表单),填写表单并提交”。
如果有什么不同的话,我们会在谷歌应用引擎上部署。
澄清:我们正在appengine上部署网页。但是交互是在一台单独的机器上运行的。所以硒似乎是最好的选择。
Twill和mechanize不支持Javascript,Qt和Selenium不能在App Engine((1))上运行,appengine只支持纯Python代码。我不知道是否有任何纯Python Javascript解释器,这就是在App Engine上部署支持JS的scraper所需要的:-(。
也许Java中有一些东西,至少可以让您部署到(Java版本的)应用程序引擎上?Java和Python中的应用程序引擎应用程序版本可以使用相同的数据存储,因此您可以将应用程序的某些部分保存在Python中。。。只是不需要理解Javascript。不幸的是,我对Java/AE环境的了解还不够多,无法建议尝试任何特定的包。
(1):为了澄清这一点,似乎有一个误解已经让我被否决了:如果你在另一台电脑上运行Selenium或其他scraper,你当然可以针对部署在App Engine中的网站(不管你的目标网站是如何部署的,它使用什么编程语言,等等,只要是一个你可以访问的网站,[真正的网站:flash&c,可能是不同的]]。我读到的问题是,OP正在寻找方法让抓取程序作为应用程序引擎应用程序的一部分运行--这是有问题的部分,不是你(或其他人;-)运行被抓取站点的地方!
如果尝试将QtWebKit与PyQt结合使用,则可以加载特定的url并从Python中读取内容。然后,您可以搜索url并再次使用Webkit访问它。我认为所有这些都可以通过一些基本的Django(假设您在GAE上使用Django)视图测试来完成,该测试将测试响应代码。下面是一个示例QtWebKit PyQt代码,如果您想用GUI的方式来启动它:
import sys import time from PyQt4.QtCore import * from PyQt4.QtGui import * from PyQt4.QtWebKit import * app = QApplication(sys.argv) web = QWebView() settings = web.settings() settings.setAttribute(QWebSettings.PluginsEnabled, True) settings.setAttribute(QWebSettings.JavaEnabled, True) settings.setAttribute(QWebSettings.JavascriptCanOpenWindows, True) settings.setAttribute(QWebSettings.JavascriptCanAccessClipboard, True) settings.setAttribute(QWebSettings.DeveloperExtrasEnabled, True) settings.setAttribute(QWebSettings.ZoomTextOnly, True) settings.setOfflineStoragePath('.') settings.setIconDatabasePath (".") url = 'http://stackoverflow.com' web.load(QUrl(url)) web.show() sys.exit(app.exec_())
硒呢?(http://seleniumhq.org)
Twill和mechanize不支持Javascript,Qt和Selenium不能在App Engine((1))上运行,appengine只支持纯Python代码。我不知道是否有任何纯Python Javascript解释器,这就是在App Engine上部署支持JS的scraper所需要的:-(。
也许Java中有一些东西,至少可以让您部署到(Java版本的)应用程序引擎上?Java和Python中的应用程序引擎应用程序版本可以使用相同的数据存储,因此您可以将应用程序的某些部分保存在Python中。。。只是不需要理解Javascript。不幸的是,我对Java/AE环境的了解还不够多,无法建议尝试任何特定的包。
(1):为了澄清这一点,似乎有一个误解已经让我被否决了:如果你在另一台电脑上运行Selenium或其他scraper,你当然可以针对部署在App Engine中的网站(不管你的目标网站是如何部署的,它使用什么编程语言,等等,只要是一个你可以访问的网站,[真正的网站:flash&c,可能是不同的]]。我读到的问题是,OP正在寻找方法让抓取程序作为应用程序引擎应用程序的一部分运行--这是有问题的部分,不是你(或其他人;-)运行被抓取站点的地方!
如果尝试将QtWebKit与PyQt结合使用,则可以加载特定的url并从Python中读取内容。然后,您可以搜索url并再次使用Webkit访问它。我认为所有这些都可以通过一些基本的Django(假设您在GAE上使用Django)视图测试来完成,该测试将测试响应代码。下面是一个示例QtWebKit PyQt代码,如果您想用GUI的方式来启动它:
硒呢?(http://seleniumhq.org)
相关问题 更多 >
编程相关推荐