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

Stella981
• 阅读 612

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

以某网站为例,任务入口地址为: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为新闻主键,即与模板二相对应的字段。

 

预览的结果图如下:

 

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

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

点赞
收藏
评论区
推荐文章
Irene181 Irene181
3年前
3000字 “婴儿级” 爬虫图文教学 | 手把手教你用Python爬取 “实习网”!
1\.为"你"而写这篇文章,是专门为那些"刚学习"Python爬虫的朋友,而专门准备的文章。希望你看过这篇文章后,能够清晰的知道整个"爬虫流程"。从而能够"独立自主"的去完成,某个简单网站的数据爬取。好了,咱们就开始整个“爬虫教学”之旅吧!2\.页面分析①你要爬取的网站是什么?首先,我们应该清楚你要爬去的网站是什么?由于这里我们想要
Python进阶者 Python进阶者
2年前
手把手教你用Python网络爬虫进行多线程采集高清游戏壁纸
一、背景介绍大家好,我是皮皮。对于不同的数据我们使用的抓取方式不一样,图片,视频,音频,文本,都有所不同,由于网站图片素材过多,所以今天我们使用多线程的方式采集某站4K高清壁纸。二、页面分析目标网站:http://www.bizhi88.com/3840x2160/如图所示,有278个页面,这里我们爬取前100页的壁纸图片,保存到本地;解析页面如图所示所哟
Python进阶者 Python进阶者
3年前
手把手教你利用JavaScript 获取任意网站图片链接
前言大家好,我是IT共享者,人称皮皮。妹纸图这个网站想必大家都非常熟悉了,老司机的天堂。小编第一次进表示身体逐渐变得空虚,表示一定要克制自己,远离这种正能量的网站。话不多说,今天带大家获取妹纸图上的图片链接。然后大家都懂得。一、项目准备360浏览器,仅此而已二、项目目的获取页面所有美女图片三、项目步骤1.打开浏览器,搜索图片,我们以美女图片为例:画面
Wesley13 Wesley13
3年前
java实现根据起点终点和日期查询去哪儿网的火车车次和火车站点信息
本文章为原创文章,转载请注明,欢迎评论和改正。一,分析  之前所用的直接通过HTML中的元素值来爬取一些网页上的数据,但是一些比较敏感的数据,很多正规网站都是通过json数据存储,这些数据通过HTML元素是爬取不到的,所以只能通过json数据的api接口来爬取数据。二,网站处理  1,打开去哪儿网的网站https://train.qu
固定ip地址
在把皕杰报表部署到LINUX上时,我们有的时候需要自动获取ip来实现连接,但平时我们为了方便,可以把我们的ip改为固定的ip,这样访问的时候也会方便许多。设置里面打开WLAN——网络和共享中心——更改适配器设置——右键点击连的WIFI属性——TCP/IPv4属性选取自动获取ip地址,就会自动获取ip。选取使用下面的ip:IP地址:192.168.1.29 
Stella981 Stella981
3年前
DataX的过滤器可行性实践
1\.需求说明​生产环境中有些数据需要在抽取的时候指定对某个字段进行过滤,判断等等。以将本地文件抽取到HDFS为例,当前我们需要导入的数据有2条,如下:!(https://imgblog.csdnimg.cn/2020101511253711.png?xossprocessimage/watermark,type_
Wesley13 Wesley13
3年前
JS随机抽取图片
1<!DOCTYPEhtml2<html3<head4<metahttpequiv"ContentType"content"text/html;charsetutf8"/5<title</title6<metachar
重定向爬虫和多线程爬虫
在日常爬取工作中会遇到程序返回302的情况,这种是网站重新定向问题,就是爬取的网站进行了跳转,我们想要的数据又需要跳转连接才能取到,比如,我们访问http/www.baidu.com会跳转到https/www.baidu.com,发送请求之后,就会返回30
马尚 马尚
7个月前
使用 Puppeteer 破解滑块验证码
在网络世界中,滑块验证码已经成为了常见的登录验证手段之一。本文将以掘金网站为例,通过前端技术Puppeteer实现自动化操作,使用CanvasAPI对验证码图片进行处理,识别出滑块的位置,并模拟拖拽滑块,实现一个高效且识别概率很高的破解方案。1.准备工作首
智多星V+TNY264278 智多星V+TNY264278
3个月前
Java 爬虫如何实现分布式部署?
以下是Java爬虫实现分布式部署的关键要点及示例代码片段辅助理解:一、任务分配与管理划分任务:根据要爬取的目标网站结构和数据量,将爬取任务拆分成多个小的子任务。例如,如果要爬取一个大型电商网站的所有商品信息,可以按照商品类别进行划分,每个类别作为一个独立的