怎样抓取网页的同时下载图片

2015-10-9 10:31| 发布者: ym| 查看: 23464| 评论: 5

摘要: 下载图片功能的特点 普通的网络爬虫不会在抓取网页的时候同时下载网页上的图片,而只是把图片地址存下来,然后用其它工具或者在另一个下载过程才去真正下载。集搜客GooSeeker网络爬虫从V5.2.0开始,将图片下载和普通 ...
下载图片功能的特点

普通的网络爬虫不会在抓取网页的时候同时下载网页上的图片,而只是把图片地址存下来,然后用其它工具或者在另一个下载过程才去真正下载。集搜客GooSeeker网络爬虫从V5.2.0开始,将图片下载和普通网页抓取合成于一个过程。主要应用场景:
  • 在淘宝、京东等电商网站上,在产品品类列表页或者搜索结果页,抓取产品列表的基本信息和每个产品的图片
  • 在产品详情页,把整个图文都存储下来,可以把HTML片段存储下来,同时把含有的图片也下载下来。作为店铺装修的素材。
下面将举例讲解使用方法。

抓取商品列表的同时下载图片


例如,抓取苏宁-红孩子网站上的婴儿服饰产品信息和图片,抓取规则是[儿童配饰_苏宁红孩子商品列表],可下载体验。
除了基本的定义规则操作以外,需要告知GooSeeker爬虫,哪是要下载的图片。


上图可以看到新版本的区别,界面上增加了“下载图片”复选框,选择以后,就是告诉GooSeeker爬虫,这是一个图片网址,需要用这个网址下载图片。也就是说,只能把img的src或者其它表示图片网址的内容映射给他。


上图是抓取结果文件,“图片网址”是定义规则的时候创建的抓取内容,“图片网址_bitmap”是自动生成的,也就是说是在抓取内容名字后面增加后缀_bitmap,记录图片文件名字和所在文件夹

上图是存储抓取结果的文件夹,除了有抓取结果xml文件以外,为每个结果文件还对应建立了一个文件夹,存储图片文件

抓取商品图文详情

商品图文详情中有多少图,你是预先不知道的,所以无法做样例复制映射,因为他们的存放可能是没有规律的,那样不妨用“高级设置”中的“网页片段”抓取功能,把这个网页片段抓下来。作为示例的抓取规则是儿童配饰_苏宁红孩子商品详情图文,可以下载体验。


上图显示定位规则的要点
  • 要设置“下载图片”
  • 要设置“高级设置”,或者先执行一次定位标志映射(如红色线条所示)就会自动设置上高级设置
  • 双击这个抓取内容,修改“高级设置”的具体设置
  • 选择“网页片段”

上图是抓取结果的一个片段,可以看到把html源代码存下来了

上图是抓取结果另一个片段,请注意:抓取内容“图文详情”是用来存储抓下来的网页HTML源码片段的,抓取结果中有一个自动创建的抓取内容“图文详情_bitmap_container”,这是一个嵌套的抓取内容,因为图文详情中可能有很多图片,每个图片用一个item存储,每个item又记录两个内容:“图文详情_bitmap”和“图文详情_bitmap_src”,前者是图片文件在硬盘上的位置,后者是图片文件的网址。
文件夹结构与抓取商品列表类似,不再赘述。


修改滚屏参数

从集搜客GooSeeker网络爬虫V5.2.0开始,滚屏参数的含义做了一点调整:
  • scrollMorePages:额外滚屏次数,缺省值是0,表示不滚屏。滚屏功能用于抓取AJAX网页上的数据,这些数据一开始没有从服务器上下载下来,直到用户滚动浏览器屏幕并在窗口中显示这些数据时才下载。请注意,这个数字并不代表准确地滚屏次数,因为程序会根据网页长度变化情况自动调整滚屏次数,这个数字可以看成是额外滚屏次数,即为了确保抓取最全的数据,在足够的滚屏次数之上额外增加的次数。常用取值:3 ~ 5。
  • scrollWindowRatio:滚屏变速档,可正可负的整数,-1和1相同,表示不变速。< -1 表示降低速度,> 1 表示提高速度。假设为N>1,那么每滚一屏,延时1/N秒;假设为N<-1,那么每滚一屏,延时|N|秒 一定要打开滚屏功能,因为不滚到可见位置,图片是不显示的,而且不能滚得太快,否则有些图片就来不及显示,所以一个比较好的参数组合是 scrollMorePages = 5 scrollWindowRatio = -2
为了下载图片,抓取速度会大大降低,这是必须付出的代价。

注意事项

本版本(V5.2.0)用于从网页片段中下载图片时,有种情形不支持:图片不是html的img标签,而是样式中的background图片。下载此类图片的能力要在后续版本中提供,请注意版本发布公告

其他介绍
12

鲜花
4

握手
1

雷人
2

路过
1

鸡蛋

刚表态过的朋友 (20 人)

相关阅读

发表评论

最新评论

评论 wangyong 2018-3-28 16:08
yingmengqian: 能只爬图片网址吗?谁能告诉我应该怎么办,要出错,定位问题,爬的过程中上一个还好好的,下一个直接没对上号 ...
规则名是什么?可以在论坛上发个帖子写上规则名和问题描述,技术人员会加载规则检查
评论 yingmengqian 2018-3-28 16:04
能只爬图片网址吗?谁能告诉我应该怎么办,要出错,定位问题,爬的过程中上一个还好好的,下一个直接没对上号
评论 lengyue151 2017-11-22 10:03
给力
评论 branet 2016-12-6 20:50
谢谢!
评论 oeitoo 2016-3-23 17:57
强大

查看全部评论(5)

GMT+8, 2024-4-25 20:53