我的网站http://whatgoeswiththis.co有一个刮刀,可以从网络上获取图片并发布到我们的网站。我可以获得服务器渲染图像没有问题,但对于像https://www.everlane.com/collections/mens-luxury-tees/products/mens-crew-antique这样的网站,图像使用javascript呈现在客户端。
我已成功在我的本地计算机上编写一个脚本,该脚本使用ghost.py来扫描此站点的图像。
但是,我必须在我的笔记本电脑上安装各种程序,如Qt,PySide,PyQt4和XQuartz。据我所知,这些不是我可以添加到我的应用程序的库。我的问题是,这个堆栈是否可以添加到我现有的Django应用程序,允许用户刮掉这些javascript注入的图像?或者是否有另一种用于webapps的解决方案?
像http://wanelo.com这样的网站能够抓取这些图片 - 特别是他们使用的是一种最佳解决方案吗?
感谢您的帮助,如果我听起来没经验,我会道歉(我只是在学习!)。
答案 0 :(得分:0)
我目前的答案是:也许ghost.py有效。但只有在我发现很多先决条件后才发现难以安装和配置。我的解决方案是遵循Pyklar的建议,通过selenium库使用PhantomJS:https://stackoverflow.com/a/15699761/2532070。
只需更改几行代码brew install phantomjs
和pip install selenium
,我就可以从beautifulsoup切换到selenium / phantomjs。
我希望这可以帮助别人避免同样的斗争!
答案 1 :(得分:0)
您可以执行以下操作:
g = Ghost()
g.open(url, wait=False)
page, resources = g.wait_for_selector(your_image_css_selector)