0

我的网站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这样的网站能够抓取这些图像 - 他们正在使用哪些特别是最佳解决方案的东西?

感谢您的帮助,如果我听起来没有经验,我深表歉意(我正在学习!)。

4

2 回答 2

0

我目前的答案是:也许 ghost.py 有效。但只有在我发现难以安装和配置的许多先决条件之后。我的解决方案是按照 Pyklar 的建议通过 selenium 库使用 PhantomJS:https ://stackoverflow.com/a/15699761/2532070 。

只需更改几行代码,我就可以从 beautifulsoup 切换到 selenium/ brew install phantomjsphantomjs pip install selenium,.

我希望这可以帮助某人避免同样的挣扎!

于 2013-09-29T17:28:31.803 回答
0

您可以执行以下操作:

g = Ghost()
g.open(url, wait=False)
page, resources = g.wait_for_selector(your_image_css_selector)
于 2013-12-26T15:18:07.020 回答