最近有客户问我关于火车头采集器如何采集及下载图片的问题,于是小小研究了一下,发现网上很多的相关文章都语焉不详,所以在此记录一下,如果您也遇到相同的问题,希望也对您有用。

这篇文章适合有一定采集基础的人观看,即可以正确设置采集规则并采集到基础内容。

我用的火车头采集器的版本是V9,如果你用的其它版本,请酌情参考。

客户遇到的问题主要如下:

  1. 如何下载图片到指定的位置?

  2. 列表页的缩略图如何采集?

在解决以上两个问题之前,我们需要知道火车头采集器在什么情况下会下载图片。

火车头采集器在包裹有img标签时会自动下载图片。

即类似如下格式时:

<img src="/uploadfile/xxx.png" title="image" alt="image">

可以自动下载图片。

*当然也可能有其它情况,请自行研究。


知道了这个前提,那我们开始来解决客户的问题,客户遇到的主要问题包含下面两个:

问题一:如何下载图片到指定的位置?

我们知道采集详情页的内容主题的时候,涉及到的图片会天然包含img标签,因此只需要设置如何下载图片到指定的位置即可。在这里面需要进行以下几步的设置:

一、设置文件保存目录及前缀

在采集规则设置的最后一个步骤,设置文件保存的根目录及链接地址前缀

1698553687285-ee6e3267-34bd-44f8-ac28-9cd44bb6c90a

保存根目录:

设置后你后面所有通过这个规则下载的图片都会保存在这个位置。

文件链接前缀:

主要是为了使内容在后期上传到网站后能正常访问,它会给你采集时对应标签中采集到的下载图片的链接自动添加前缀,这个是在标签设置的所有规则应用完成后最后一步进行的。

在最后形成的采集链接的结果关系如下:

【地址前缀】【内容采集标签中组合成的部分】【图片名称及后缀】如在最后形成的图片链接为:/uploads/allimg/231029/xxx.jpg。其中第一个反斜杠“/”为地址前缀,“uploads/allimg/231029/”为组合部分,“xxx.jpg”为图片名称及后缀。

我在这里添加了一个反斜杠,主要是因为我的图片是相对地址,需要基于根目录进行定位。你也可以填入域名地址,如:https://xxx.com/。

二、在第二步内容采集规则中设置图片下载

如下图:

1698555340712-cb9afe4f-5efb-4728-b855-44fc51d31dee

这里上图中的三个部分都需要设置:

下载图片需勾选

文件保存目录

这个地方看着比较乱,其设置方法如下,如我要将图片下载到“uploads/alling/yyMMdd”。

先将上面的结果填入到保存目录,我们会发现有些字母有加粗变色。

1698555704865-2ff6f8e4-9b0f-4b9a-80ff-d7c78f87e3e7

最后的yyMMdd为时间格式,保持原样就好。其它的变色的部分只需要在每一个前面添加英文反斜杠“\”,添加后会发现对应字母变正常,代表设置成功。

文件保存格式

设置方式与保存目录类似,一般选择原文件名就好。

至此设置完成,采集测试你会发现最终采集到的链接地址变成:

【地址前缀】【内容采集标签中组合成的部分】【图片名称及后缀】格式。

本例中为:“/uploads/allimg/231029/xxx.jpg”。

下面来解决第二个问题。

问题二:如何采集列表页中的缩略图?

一、网址采集规则处的设置

先看下图,在采集规则中的第一个部分,网址采集规则处:

1698556741198-ba687a5a-d515-466b-b047-aae18ddf7122

要采集列表页中的缩略图,需要在列表页中设置对应的标签,因此不能使用默认的自动获取链接地址的方式,而要选则手动设置规则获取的方式。

如列表页中文章列表的整个格式如下:

<ul id="boxNewList">
<li>xxxxxxx</li>
<li>xxxxxxx</li>
.....
</ul>

整个<ul></ul>部分代表采集区域,在上图中的采集区域中设置。

<li></li>为单个循环体部分,在提取规则中设置。

在提取规则设置中,不需要将单个循环体中的所有部分都copy进来,只需要包含你所要设置标签中的部分即可。参考上图,因为我要采集列表缩略图、详情页地址以及列表时间三个标签,所以我截取了包含这三个标签的部分代码。

在本文的最开始,我们知道火车头采集器只能自动下载包裹在img标签中的部分,但是这里我只截取了标签中的图片链接地址,显然是不能自动下载的,这个问题我们将在下面的部分来处理。下图是列表页采集测试时截取到的列表页设置的三个标签。

1698557613265-25d4c134-ecad-4494-8097-8db9bb320b8b

二、内容采集规则设置

在列表页标签中,我们设置了名称为【列表缩略图】的标签,但实际上我们最终入库的是【缩略图】这个标签,因此需要在列表页标签中进行一些处理。

创建标签

在内容采集规则中新建缩略图标签,数据获取方式选择已有标签组合,并选择列表缩略图

1698558422075-50297847-2b05-46e2-b0bc-21d33d027cdb

内容添加前后缀

经过上一步的处理,我们在缩略图标签中已经可以获取到列表页缩略图地址,类似于:“/upload/xxx/xxx.jpg”,但是获取的地址是纯地址,没有包裹img标签,所以火车头采集器是下载不了图片的,在这一步,我们需要给这个地址添加img标签,即添加前后缀。

在数据处理处点击【+】号,选择【高级功能】,选择【内容添加前后缀】。并添加前字符串及后字符串如下图所示:

1698558832863-773ee3fc-362c-4092-9c94-da4faa2d2004

此时【缩略图】标签中的数据变为:<img src="/upload/xxx/xxx.jpg" class="img-responsive">(class部分可省略),此时的格式已经符合下载图片的要求了。

提取第一张图片

【缩略图】最终入库时我们仍然需要类似于:“/upload/xxx/xxx.jpg”的格式,因此我们需要将上一步设置的标签去掉还原。

在数据处理中,继续点击【+】号,选择【智能提取】,选择【提取第一张图片】,如下图所示:

1698559261141-701fb1c3-625b-478b-ac09-576fda16c79d

此时【缩略图】中标签格式还原为纯链接形式,类似于:“/upload/xxx/xxx.jpg”。

设置文件下载

1698559459310-ca241d32-2b86-4f4b-9100-bbcd8c0e2ec9

参看本文问题一部分的设置。


至此,火车头采集器如何采集及下载图片完成,客户的两个问题都得到了解决。