ForeSpider教程之如何爬取位置不固定的图片

122 篇文章 2 订阅
121 篇文章 0 订阅

摘要:本文以某新闻网站为例,教大家如何爬取位置不固定的图片。

众所周知,对于新闻网站来说,图片位置是无法固定的,所以想要爬取到这些位置不固定的图片,需要一定的技术手段。

以某网站为例,任务入口地址为:http://www.chengdu.cn/

一、对首页进行链接抽取。

 

抽取文章标题,使用地址过滤“包含”.shtml。抽取到结果如下:


二、新建模板2,抽取图片链接及内容数据:

示例地址如下:http://news.chengdu.cn/2016/0817/1810143.shtml

 

1. 把图片链接抽取出来。

进行采集预览,查看图片的链接规律,通过地址过滤“排除”^jpg;^jpeg;^png;^bmp;^gif。

2. 为图片设置唯一标志与正文相关联。

通过标题过滤脚本return MD5(URL.urlname)给模板2的主键赋值,因为新闻图片的不规则性,需要通过某个字段将内容与图片相关联,所以此处标题过滤还有个作用就是将整个网页内容传递到模板3,起到相关联的作用。

过滤好的图片链接如下:

 

3.设置字段,为了将爬取到的内容分类的放入数据库中。

取正文页的数据,配置如下表单:

 

4.给字段赋值,从而获得数据。

通过定位及脚本取值,取到如下数据:

 

由于新闻类网站文章的不规则性,所以某些字段是需要通过脚本取值实现的。脚本取值字段包括:hkey、author、news_time、content、pub_web。

以下为字段脚本:

hkey:return MD5(URL.urlname);//返回本页链接地址,通过MD5方法加密。

author:

return "编辑" + DOM.GetTextAll(DOM.FindClass("font_gray")).Right("编辑");//在源码里找到包含作者标签的class,取出其中的文本,然后取右串“编辑”。

news_time:

return DOM.GetTextAll(DOM.FindClass("font_gray")).Left("来源");//在源码里找到包含新闻时间标签的class,取出其中的文本,然后取“来源”左侧的内容。

content:

return DOM.GetTextAll(DOM.FindClass("contxt"));//在源码里找到包含新闻事件标签的class,取出其中的文本。

pub_web:

return DOM.GetTextAll(DOM.FindClass("font_gray")).Middle("来源:"," ");//源码里找到包含文章原出处标签的class,取出其中的文本,然后取”来源”和” ”中间的内容。

三.新建模板3,抽取图片。

 

取图片,配置如下表单:

需要注意的是003为新闻主键,即与模板二相对应的字段。

 

预览的结果图如下:

 

这样操作不仅可以使内容和图片一一对应,也便于之后的数据导出工作。

以上就是位置不固定的图片的抽取教程,大家学会了吗?

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值