本文章讲解的火车头采集今日头条文章的方法,是按栏目采集的,比如热点,科技,娱乐,游戏,财经等。打开头条不同栏目对比一下,可以看到它们后缀不同之处就是news_(*)来区分不同的栏目。下面就以科技这个栏目作演示。如果想要采集别的栏目文章,把下面的所有代码 news_tech
替换为别的栏目相对应的,比如财经的,就改为news_finance
。
今日头条文章在火车采集器第一步里面是按下面格式填写,需要拼接处列表页和内容页,之后请求内容,as和cp参数必须,这两个参数是会变化的(变化是因为可以得到栏目列表页不同的文章),因此需要构造出这两个参数。
1、列表页格式: https://m.toutiao.com/list/?tag=news_tech&ac=wap&count=20&format=json_raw&max_behot_time=0&as=A165EE21707908E &cp=5E1009A0D8AE0E1 2、内容页格式: https://www.toutiao.com/i11111111111111111111/?channel=news_tech&W2atIF=1
第一步,列表页中的as和cp需要自己实现,下面借用了网上的代码,运行方式这里我用的是本地服务器,每运行下面的代码文件一次,就会生成一次不同的as和cp的值,然后结果输出到E盘根目录下(这样处理的方式目的就是为了以文件方式导入到火车头第一步里面)。关于本地服务器怎么搭建,点开链接进去就可以看看。然后利用刷新软件定时,设置了50秒-180秒的时间间隔刷新得到不同的as和cp的值,时间的长短随便自己设置。不同的as和cp值,栏目就会生成不同的文章,这样就能一直采集到不同的文章内容。
<?php function getAsCp() { $as = ''; $cp = ''; $time = time(); $key = strtoupper(dechex($time)); $md5Key = strtoupper(md5($time)); if (8 !== strlen($key)) { $as = '479BB4B7254C150'; $cp = '7E0AC8874BB0985'; } else { $md5KeyAsc5 = substr($md5Key, 0, 5); $md5KeyDesc5 = substr($md5Key, -5); $as = ''; $cp = ''; for ($i = 0; $i < 5; $i ++) { $as .= $md5KeyAsc5[$i] . $key[$i]; $cp .= $key[$i + 3] . $md5KeyDesc5[$i]; } $as = 'A1' . $as . substr($key, -3); $cp = substr($key, 0, 3) . $cp . 'E1'; } $data = "https://m.toutiao.com/list/?tag=news_tech&ac=wap&count=20&format=json_raw&max_behot_time=0&as=".$as."&cp=".$cp; file_put_contents("E:/news_tech.txt",$data); echo $data; } getAsCp();
上面这段代码保存为 ascp.php 的格式,放在本地服务器 www 根目录下。
本地服务器开启后,在浏览器输入 httP//127.0.0.1/ascp.php ,文件的输出结果放在了本机电脑E盘根目录下 news_tech.txt 这里面,自己也可以改上面代码放在别处。这个文件从添加向导那里,导入在火车采集器(我用的是V9版本)第一步网址采集起始网址那里。
下面获取内容页地址-手动设置规则获取,把规则填上去。
提取规则:"source_url": "/i[参数]/" 拼接地址:https://www.toutiao.com/i[参数1]/?channel=news_tech&W2atIF=1
然后设置内容采集规则,发布规则等,这里就不再详细讲,不懂的到火车头官网查阅。
第二步,把本地服务器开启,然后再把刷新软件打开。然后再结合网页自动刷新软件(用这个软件就是我想要定时采集的时候用,如果不是定时采集的或只采集少量的,第二步可以忽略不看直接跳过。采集之前自己在浏览器刷新一下再采集就可以了。http://127.0.0.1/ascp.php ),刷新网页软件下载地址:
链接:https://pan.baidu.com/s/1e2lu1LvOk2vFEsogeWrFEg
提取码:43eg
刷新软件操作方便,如下图,把链接填上去,然后设置时间间隔,60,就是60秒,需要设置多少根据自己情况,然后点击刷新,再点击开始,就可以了。这样每60秒就刷新一次,就会生成新的列表页地址。
下面是我刚刚测试的采集的结果。
本文章为路丁博客原创文章,转载请注明链接出处,原创不易。
评论