use*_*171 14 javascript python screen-scraping
我正在努力将信息提交给严重依赖Javascript来完成其大部分操作的网站.当我在浏览器中禁用Javascript时,该网站甚至无法工作.
我在Google和SO上搜索了一些解决方案,并且有人建议我应该对Javascript进行逆向工程,但我不知道该怎么做.
到目前为止,我一直在使用Mechanize,它适用于不需要Javascript的网站.
有没有办法通过使用urllib2或类似的东西访问使用Javascript的网站?我也愿意学习Javascript,如果这就是它需要的东西.
您应该考虑使用Ghost,一个包装PyQt4 + WebKit hack的Python库.
这使得gWebKit客户端:
import ghost
g = ghost.Ghost()
Run Code Online (Sandbox Code Playgroud)
您可以使用g.open(url),然后g.content将评估文档的当前状态.
Ghost还有其他很酷的功能,比如注入JS和一些表单填充方法,你可以将生成的文档传递给BeautifulSoup,等等:soup = bs4.BeautifulSoup(g.content).
到目前为止,Ghost是我发现的唯一能让Python变得简单的东西.我遇到的唯一限制是你不能轻易地创建客户端对象的多个实例ghost.Ghost,但你可以解决这个问题.
我写了一个关于这个主题的小教程,这可能会有所帮助:
http://koaning.io/dynamic-scraping-with-python.html
基本上你做的是你有selenium库假装它是一个firefox浏览器,浏览器将等到所有javascript加载后继续传递你的html字符串.一旦你有了这个字符串,你就可以用beautifulsoup解析它.
我有完全相同的问题.这一点并不简单,但我终于找到了一个很好的解决方案,使用PyQt4.QtWebKit.
您可以在此网页上找到解释:http://blog.motane.lu/2009/07/07/downloading-a-pages-content-with-python-and-webkit/
我已经测试过,我目前正在使用它,这太棒了!
它的巨大优势在于它可以在服务器上运行,只使用X,没有图形环境.
看看撬棍.我没有任何经验,但我很好奇你的问题的答案,所以我开始谷歌搜索.我想知道这是否适合你.
http://grep.codeconsult.ch/2007/02/24/crowbar-scrape-javascript-generated-pages-via-gecko-and-rest/
我实际上建议使用Selenium.它主要用于从"用户角度测试Web应用程序,但它基本上是一个"FireFox"驱动程序.我实际上已经将它用于此目的......虽然我正在搜索动态AJAX网页.只要Javascript形式有一个可识别的"锚文本",Selenium可以"点击"一切应该排除自己.
希望有所帮助
| 归档时间: |
|
| 查看次数: |
16471 次 |
| 最近记录: |