Python:使用Ghost进行动态Web垃圾处理

Python:使用Ghost进行动态Web垃圾处理,python,dynamic,web-scraping,ghost.py,Python,Dynamic,Web Scraping,Ghost.py,正在尝试从以下位置获取天气数据: 我找到了关于如何使用Ghost来抓取动态内容的示例,但我还没有找到如何处理结果 因为ghost在我使用的交互式shell中运行时似乎有问题 打印(结果) 要将输出管道化到文件,请执行以下操作: python GetMetoObservation.py>正确的结果 这是我的python代码: 从重影导入重影 url='' gh=重影(等待超时=60) 页面,资源=gh.open(url) 结果,resources=gh.evaluate(“document.get

正在尝试从以下位置获取天气数据:

我找到了关于如何使用Ghost来抓取动态内容的示例,但我还没有找到如何处理结果

因为ghost在我使用的交互式shell中运行时似乎有问题

打印(结果)

要将输出管道化到文件,请执行以下操作:

python GetMetoObservation.py>正确的结果

这是我的python代码:

从重影导入重影
url=''
gh=重影(等待超时=60)
页面,资源=gh.open(url)
结果,resources=gh.evaluate(“document.getElementsByClassName('obs-content');”)
打印(结果)

当检查文件时,它确实包含了我想要的东西,但它也包含了大量我不想要的信息。 还不清楚如何使用评估回报的可变结果。 检查ghost.py它似乎由

self.main\u frame.evaluateJavaScript(“%s”%script)

在:

def评估(自我,脚本):
“”计算页面框架中的脚本

:param script:要计算的脚本。

返回(
self.main\u frame.evaluateJavaScript(“%s”%script),
self.\u release\u last\u resources(),
)

当我执行命令时:

document.getElementsByClassName('obs-content')

在Chromium控制台中,我得到了正确的响应

谈到python,我是一个初学者,但我愿意学习。
另外请注意,如果有必要的话,我会在Ubuntu下的python虚拟环境中运行它。

注意,我将此作为答案发布,因为我当前的解决方案是使用iMacros扩展并在本地保存网页,然后使用BeautifulSoup对现在静态的数据执行抓取

最初的问题是关于如何使用Ghost在动态页面上工作,但由于我还没有做到这一点,我找到了另一个对其他人有用的解决方案

iMacro内容(我将其命名为GetWeather.iim):

VERSION BUILD=8881205 RECORDER=FX

选项卡T=1

URL转到=http://www.metservice.com/maps-radar/local-observations/local-3-hourly-observations

WAIT SECONDS=5

SAVEAS TYPE=CPL FOLDER=*FILE=+{{!现在:yyyyymmdd\u hhnss}

从crontab调用的shell脚本:

#/bin/bash

导出显示=:0.0

/usr/bin/firefox&

sleep 5
/usr/bin/firefoximacros://run/?m=GetWeather.iim

睡眠10

wmctrl-c“Mozilla Firefox”

以及使用BeautifulSoup执行实际web抓取的python脚本

更新了停止firefox的正确方法,但没有按照第一个答案中的指示将其恢复到安全模式