typecho自动采集入库思路和可能遇到的问题及部分解决方法

本文阅读 4 分钟
广告

我是个懒人,能采集的绝对不会复制的!!!

下面说一下我在自动采集大致思路遇到的问题跟解决方法,各位大佬可以别嘲笑我啊!

采集最新数据——>匹配当天日期获取文章id——>把id拼接成url在进行curl采集——>把采集到的数据替换过滤一下——>采集入库并邮件提醒——>加入宝塔计划任务每天执行一次

上面就是我的大概思路,看起来就几个步骤关键我是小菜鸟,这几个步骤手戳了一天!

第一步采集最新数据

我选择的目标网站有一个特点,首页或者有一个页面聚合了发布的最新文章!

然后直接curl,截取关键地方就行

接下来我们要做的就是处理数据,匹配到两个关键的地方,文章的id和文章更新的日期,把采集到的数据做成一个数组,然后匹配当天日期获取文章id,最后循环输出当天所有的信息。

上代码

$data = [

['date' => '2023-04-01', 'info' => '123'],

['date' => '2024-08-02', 'info' => '456'],

['date' => '2023-04-03', 'info' => '789'],

];

$today = '2024-08-03';

//$today = date('Y-m-d');

$todayData = array_filter($data, function($item) use ($today) {

return $item['date'] === $today;

});

$infoValues = array();

foreach ($todayData as $item) {

if (isset($item['info'])) {

$infoValues[] = $item['info'];

}

}

if(empty(count($infoValues))){

echo '当天无更新';

}else {

for ($i=1; $i<=count($infoValues); $i++){

echo "xxxx.php?so=".$infoValues[$i-1]."";

//解析匹配到的文章id

//格式xxxx.php?so=123 xxxx.php?so=456 xxxx.php?so=789

}

}

我把这个保存命名为1.php

当时到这一步的时候不会搞了,要把链接的内容采集处理,还要解析下载地址,还要入库!

代码量有点大了,一些变量跟方法的命名容易冲突(我写代码就固定的几个名字~~~~)

想了一会,我重新做了一个页面再次curl,目标地址就是这个xxx.com/1.php

重新处理模拟登陆过滤标签采集入库之类的。

大家看看思路就行,代码就不全发出来了,免得大佬笑话我

这里有个重点,就是typecho的超链接太不人性了

[点击下载][10]

[10]: https://pan.baidu.com

[图片描述][10]

[10]: https://tutututu.png

这一个是超链接一个是图片,可以看出来两个都是命名的是10

如果这两个出现在同一个页面里还没有改编号,大家可以猜一下会变成什么样?

对,入库后会变成

[点击下载][10]

[10]: https://tutututu.png

就是编号重复造成的

所以如果采集的时候遇到好几张图片的情况下一定要注意这个编号。(我是直接入库的,在网站自带的模版测试下的结果,其他模版不清楚)

还有这里

入库的时候最起码是这四个,标题,正文,更新时间,最后这个不知道是干啥的给它赋值1就OK,少了它还真不行。正文必须要以<!--markdown-->开始,组合字符串的时候直接写进去就行!

还有这个分类

好像还有一些要注意的地方就是想不起来了,想起来的时候再说吧!

大家有啥不明白的地方可以在评论区留言!或者哪个步骤有好的想法可以提个建议感激不尽!

本文来自投稿,不代表本站立场,如若转载,请注明出处:https://www.ruletree.club/archives/3660/
关于谨防奇小言(优速社区/速程社区)诈骗的通知
« 上一篇 08-14
广告

发表评论

成为第一个评论的人

作者信息

热门文章

标签TAG

热评文章