火车头采集头条文章

Posted ynhi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了火车头采集头条文章相关的知识,希望对你有一定的参考价值。

总结:没什么技术含量,只是记录一下

难点:1、as和cp的生成 

  2、请求列表页的时候如何嵌入生成的as和cp

  3、返回内容的格式处理

首先:需要拼接处列表页和内容页,之后请求内容,可以看到as和cp参数必须,因此需要构造出这两个参数

1、列表页格式:

https://m.toutiao.com/list/?tag=news_sports&ac=wap&count=20&format=json_raw&max_behot_time=0&as=A165EE21707908E
&cp=5E1009A0D8AE0E1

2、内容页格式:

https://www.toutiao.com/i11111111111111111111/?channel=news_sports&W2atIF=1

列表页中的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‘;
    }
    return array($as, $cp);
}
$t = getAsCp();
echo $t[0].".".$t[1];

通过先请求本地文件获得as和cp,在一级列表页中构造真实列表页的格式,解决难点2。

返回的内容中是unicode编码,需要进行转换,在内容处理中调用c#代码实现处理,解决难点3

using System;
using System.Collections.Generic;
using SpiderInterface;
using System.Text.RegularExpressions;
class LocoyCode{
    /// <summary>
    /// 执行方法,不能修改类和方法名称。
    /// </summary>
    /// <param name="content">标签内容</param>
    /// <param name="response">页面响应,包含了Url、原始html等属性</param>
    /// <returns>返回处理后的标签内容</returns>
    public string Run(string content,ResponseEntry response){
        //在这里编写处理代码
        return new Regex(@"u([0-9A-F]{4})", RegexOptions.IgnoreCase | RegexOptions.Compiled).Replace(
                 content, x => string.Empty + Convert.ToChar(Convert.ToUInt16(x.Result("$1"), 16)));
      //  return content;
    }
}

技术图片

 

还是老规矩  欢迎群内技术交流qq 623607229, 闲暇时接开发、维护项目

以上是关于火车头采集头条文章的主要内容,如果未能解决你的问题,请参考以下文章

帝国cms用火车头采集的文章 不自动提取文章简介和图片

火车头dede采集接口,图片本地化

帝国cms火车头发布现实用户不存在,怎么解决

wordpress好用的采集工具哪个比较好用

火车头采集器怎么与帝国cms7.2链接

悬赏采集CSDN上的 文章 包括标题 内容 谁能给一个asp 的采集规则 ?