实战使用QueryListPHP框架采集AE博客文章

介绍

本次为大家带来QueryListPHP框架的深度用法
采集内容有

  • 文章标题
  • 文章链接
  • 发布作者
  • 发布时间
  • 下载链接(自动获取下载链接通道及名字)
  • 文章ID(用来做是否重复判断)
  • 自动图片转MD语法

实现代码

use QL\QueryList;

$client = new GuzzleHttp\Client();
$res = $client->request('GET', 'http://www.aeink.com');
$html = (string)$res->getBody();
$title = QueryList::html($html)->find('.excerpt')->map(function ($Row) {
    global $client;
    $href = $Row->find("header>h2>a")->attr("href");
    preg_match('/www.aeink.com\/(\d+)/', $href, $matches);
    $id = $matches[1];
    $title = $Row->find("header>h2>a")->text();
    $res = $client->request('GET', $href);
    $html = (string)$res->getBody();
    $date = str_replace("日期:", "", QueryList::html($html)->find(".article-meta>span:first")->text());
    $author = QueryList::html($html)->find(".article-meta span:eq(1)")->text();
    $article_content = QueryList::html($html)->find(".article-content");
    $down = $article_content->find("#down-tipid>strong a")->attr("href");
    $article_content->find('.paydown,.post-copyright')->remove();
    $content = $article_content->html();
    $details = preg_replace_callback('/<img.*?src="(.*?)".*?>/is', function ($text) {
        global $title;
        return "\n" . '![' . $title . '](' . $text[1] . ')' . "\n";
    }, $content);
    $details = preg_replace_callback('/<style>(.*?)<\/style>/is', function ($text) {
        return "";
    }, $details);
    $text = QueryList::html($details)->find("")->text();
    $res = $client->request('GET', $down);
    $html = (string)$res->getBody();
    $dw = QueryList::html($html)->find(".panel-body a")->map(function ($R) {
        return [
            'name' => $R->text(),
            'href' => $R->href
        ];
    })->all();
    return [
        'thumb' => $Row->find(".focus img")->attr('src'),
        'title' => $title,
        'href' => $href,
        'id' => $id,
        'date' => $date,
        'author' => $author,
        'text' => $text,
        'dw' => $dw
    ];
});
print_r($title->all());

说明

AE博客安装有waf(防火墙)建议三个小时执行一次,可以使用Redis缓存。

相关说明:

1、VIP会员无限制任意下载,免积分。立即前往开通>>

2、下载积分可通过日常 签到绑定邮箱 以及 积分兑换 等途径获得!

3、本站资源大多存储在云盘,如出现链接失效请评论反馈,如有密码,均为:www.ipipn.com。

4、所有站内资源仅供学习交流使用。未经原版权作者许可,禁止用于任何商业环境,否则后果自负。为尊重作者版权,请购买正版作品。

5、站内资源来源于网络公开发表文件或网友分享,如侵犯您的权益,请联系管理员处理。

6、本站提供的源码、模板、软件工具等其他资源,都不包含技术服务,请大家谅解!

7、源码、模板等资源会随着技术、坏境的升级而存在部分问题,还请慎重选择。

PS.源码均收集自网络,如有侵犯阁下权益,请发信件至: admin@ipipn.com .


源站网 » 实战使用QueryListPHP框架采集AE博客文章

发表评论

赞助本站发展 维持服务器消耗

全站源码免费下载 立刻赞助