作者xiphoid ( )
看板Python
标题Re: [问题] 请教ghost.py抓取javascript後
时间Wed Jun 20 20:02:13 2012
※ 引述《areyo (没有名字的怪物)》之铭言:
: hi
: 谢谢版上许多高手帮忙
: 但有些问题还是想请教一下
: 我的code如下
: from ghost import Ghost
: referer_url = "http://www.w3schools.com/js/tryit.asp?filename=tryjs_comments5"
: gh = Ghost(wait_timeout=100000)
: page,resources = gh.open(referer_url)
: result,resources=gh.evaluate("document.getElementById(\"myP\")")
: print result
: 上面那个URL是个教javascript的网页,我拿来测试ghost.py
: 抓完後,result的确是有东西,但是我怎麽印出它的值呢?
: 谢谢
http://www.w3schools.com/js/tryit.asp?filename=tryjs_comments5
的实际网页在iframe里 网址用
http://www.w3schools.com/js/tryit_view.asp?filename=tryjs_comments5
才有东西 然後
>>> gh.evaluate("document.getElementById('myP').innerHTML")
(u'x=7', [])
觉得 DOM 太难用的话有
https://bitbucket.org/olauzanne/pyquery/
大概就 gh.content 吐 html 出来分析 (没用过)
--
http://head.barepants.com/
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 1.34.34.70
※ 编辑: xiphoid 来自: 1.34.34.70 (06/20 20:02)
1F:推 areyo:为什麽要多加个_view呢?? 的确抓到满多东西的,可以跟我解 06/20 22:51
2F:→ areyo:释是什麽原因呢?? 谢谢 06/20 22:51
你用原本网址似乎有抓到东西? 但我result是''
少了_view 右边的结果放在iframe里 不能直接document.getXXX
要用下面的方式才能取得iframe里的内容
document.querySelector('iframe').contentDocument
.getElementById('myP').innerHTML
两行连起来 (刚刚google的 对DOM不够熟 囧)
※ 编辑: xiphoid 来自: 1.34.34.70 (06/21 09:20)
3F:推 areyo:它是显示一段PyQt .....0x423423(我用print result)就这些 06/21 09:44
4F:→ areyo:看来我得去K一下javascript才行 06/21 09:45