我想从页面上抓取广告
我发现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&&s.handlers,h=H&&H[i],w=this.contentWindow,d;try{d=w.document}catch(e){}if(h&&d&&(!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?我需要抓取广告的链接和图像。