一、网页图片抓取时代背景
随着网络技术的发展和互联网的普及,由于网上用户数量越来越庞大,网站同时并发的压力比较大,尤其是大型网站,因此现在网页图片都采取懒加载(Lazy Load)的方式;还出现了好多为了采集资源而出现的网络爬虫(Net spider),为了反制图片爬虫,研发人员都不会把网页的图片地址放到<image>标签的src属性中去,而放到其他属性中去通过脚本来异步加载,或者页面中根本没有图片地址,通过专门的异步请求来单独获取和处理,还有就是针对频繁下载IP进行封号。
二、网页图片抓取难点处理
1、图片地址存放位置不同
采用以下网页图片抓取代码,把存放到不同位置的图片地址都抓取出来,:
# 获取图片的真实地址
if img_node_type==0:
fileUrl=''
# 优先src之外的其他属性,这些属性一般存放真实地址,发爬都是这样设计的
for attrkey in img.attrs:
if attrkey=='src':
continue
tempurl = str(img.attrs[attrkey])
tempurl=get_imageurl_in_str(tempurl)
if tempurl=="": #当前属性值不含图片url则继续搜索其他属性值
continue
if tempurl[:4]=="http":
fileUrl = tempurl
elif tempurl[:2]=="//":
fileUrl = "http:"+tempurl
elif tempurl[:1] == "