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

众所周知,对于新闻网站来讲,图片位置是没法固定的,因此想要爬取到这些位置不固定的图片,须要必定的技术手段。html

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

1、对首页进行连接抽取。数据库

 

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


2、新建模板2,抽取图片连接及内容数据:加密

示例地址以下:http://news.chengdu.cn/2016/0817/1810143.shtmlurl

 

1. 把图片连接抽取出来。spa

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

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为新闻主键,即与模板二相对应的字段。

 

预览的结果图以下:

 

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

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

相关文章
相关标签/搜索