获取渲染的HTML代码,Python

时间:2014-11-21 16:37:01

标签: javascript python html webkit

我想从页面上抓取广告 我发现dryscrape库很有用,但我不知道如何获取渲染的DOM对象。 (例如Google广告。)

import dryscrape
from BeautifulSoup import BeautifulSoup

sess = dryscrape.Session(base_url='http://kwejk.pl')

sess.set_attribute('auto_load_images', True)
sess.visit('/')

html = sess.driver.body()

soup = BeautifulSoup(html)

iframes = soup.findAll('iframe')

for i in iframes:
    if 'google' in str(i):
        print i # this html code contains image/advertisement
        print ''

sess.driver.render('screenshot.jpg') # I may see that javascript was executed (ads are visible)

# just how to get changed html with advertisement img object?


虽然保存的屏幕截图包含所有广告,但我找不到任何html代码。在Web浏览器中,它是一个普通的img对象。

我的代码的示例输出是(对于一个iframe):

<iframe width="750" height="300" frameborder="0" marginwidth="0" marginheight="0" vspace="0" hspace="0" allowtransparency="true" scrolling="no" allowfullscreen="true" onload="var i=this.id,s=window.google_iframe_oncopy,H=s&amp;&amp;s.handlers,h=H&amp;&amp;H[i],w=this.contentWindow,d;try{d=w.document}catch(e){}if(h&amp;&amp;d&amp;&amp;(!d.body||!d.body.firstChild)){if(h.call){setTimeout(h,0)}else if(h.match){try{h=s.upd(h,i)}catch(e){}w.location.replace(h)}}" id="aswift_4" name="aswift_4" style="left:0;position:absolute;top:0;"></iframe>

正如您所看到的,没有img对象。

任何人都知道如何使用img对象获取此iframe?我需要抓取广告的链接和图像。

0 个答案:

没有答案