捕获页面时捕获动态生成的图像

时间:2012-04-23 21:52:08

标签: php ruby web-scraping

我正在尝试从旧数据库中捕获一些图像。

在编写scraper时,我使用ruby(但也熟悉php)直接打开()网站并阅读其内容。我有时也使用脚本调用相应的curl ...命令。

但是,我正在抓取一些页面的数据库返回一个页面,然后使用服务器端脚本假定的一系列随机数嵌入带有图像名称的目标图像。例如:

<img ... show_image.jsp?343523.jpg

但是,我无法直接调用此show_image脚本(拒绝),它只能在嵌入整个网站时才有效。

我可以使用curl,或者在ruby或php中做一些下载整个页面的事情,例如,1929.2.14.aspx以包含show_image.jsp?343523.jpg生成的嵌入图像的方式吗?

如果我只是直接卷曲aspx文件,我自然只是得到html - 如何通过脚本以基于浏览器的“web存档”功能手动工作的方式保存html和嵌入图像?

任何提示,教程链接等都赞赏......

2 个答案:

答案 0 :(得分:0)

如果脚本(例如show_image.jsp)正在进行简单的引用检查,您可以通过编写PHP(或Ruby)scraper来解决它,以便在制作之前设置引用者GET:

curl --referer http://www.example.com http://www.example.com/show_image.jsp?bar.jpg

答案 1 :(得分:0)

你可能应该使用mechanize来抓取ruby中的网站。当你这样做时,它将为你设置cookie和referer,所以获取图像将如下:

agent.get(image_url).save_as 'local_filename.jpg'