Python:使用Ghost进行动态Web垃圾处理
正在尝试从以下位置获取天气数据: 我找到了关于如何使用Ghost来抓取动态内容的示例,但我还没有找到如何处理结果 因为ghost在我使用的交互式shell中运行时似乎有问题 打印(结果) 要将输出管道化到文件,请执行以下操作: python GetMetoObservation.py>正确的结果 这是我的python代码: 从重影导入重影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
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的正确方法,但没有按照第一个答案中的指示将其恢复到安全模式