国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

獲取SegmentFault某個(gè)標(biāo)簽下的一些信息

qujian / 607人閱讀

摘要:前言目前還沒有開放,年的時(shí)候高陽大大說有計(jì)劃,雖然那會(huì)我還沒用用隨便寫了一個(gè)獲取某個(gè)標(biāo)簽下信息的代碼,沒什么技術(shù)含量,用來定時(shí)獲取目的是如果有問題可以解決就幫助解決一下,或者是廣告的話可以進(jìn)行舉報(bào)獲取主要獲取標(biāo)簽動(dòng)態(tài)下的就可以了,包含了技術(shù)

前言

目前SegmentFault還沒有開放API,17年的時(shí)候高陽大大說有計(jì)劃,雖然那會(huì)我還沒用SegmentFault

PHP隨便寫了一個(gè)獲取某個(gè)標(biāo)簽下信息的代碼,沒什么技術(shù)含量,用來定時(shí)獲取

目的是如果有問題可以解決就幫助解決一下,或者是廣告的話可以進(jìn)行舉報(bào)

獲取URL

主要獲取標(biāo)簽動(dòng)態(tài)下的就可以了,包含了技術(shù)問答和專欄文章

標(biāo)簽動(dòng)態(tài) https://segmentfault.com/t/*

技術(shù)問答 https://segmentfault.com/t/*/questions

專欄文章 https://segmentfault.com/t/*/blogs

XPath節(jié)點(diǎn)

PHP使用XPath采集也是還可以的,也相對(duì)簡單

標(biāo)簽動(dòng)態(tài)

標(biāo)題 //h4/a/text()

鏈接 //h4/a/@href

技術(shù)問答

仔細(xì)點(diǎn)的話可以帶一個(gè)class屬性

標(biāo)題 //h2[@class="title"]/a/text()

鏈接 //h2[@class="title"]/a/@href

專欄文章

標(biāo)題 //h2/a/text()

鏈接 //h2/a/@href

效果截圖

使用

需要補(bǔ)全代碼中的相關(guān)信息,URLXPath節(jié)點(diǎn)以及json文件路徑

可選擇使用 @Easy 的 PushBear 進(jìn)行一對(duì)多推送,需要補(bǔ)全key

crontab定時(shí)

crontab定時(shí)任務(wù)30分鐘一次,獲取第一頁的信息

*/30 * * * * php /www/wwwroot/tag.php >> /tmp/sf.log
PHP代碼
loadHTML($html);
// 使該HTML規(guī)范化
$dom->normalize();
// 用DOMXpath加載DOM,用于查詢
$xpath = new DOMXPath($dom);

// 獲取對(duì)應(yīng)的xpath數(shù)據(jù)
$title_hrefs = $xpath->query($title_xpath); // 標(biāo)題

$data = [];
for ($i = 0; $i < $title_hrefs->length; $i++) {
    $href = $title_hrefs->item($i);
    $title = $href->nodeValue;
    $data[$i]["title"] = $title;
}

// 獲取對(duì)應(yīng)的xpath數(shù)據(jù)
$url_hrefs = $xpath->query($url_xpath); // 鏈接
for ($i = 0; $i < $url_hrefs->length; $i++) {
    $href = $url_hrefs->item($i);
    $url = $href->nodeValue;
    $data[$i]["url"] = "https://segmentfault.com".$url;
}

$json = json_encode($data);

// 判斷文件是否存在
if (file_exists($json_path)) {
    // 存在
    $old = file_get_contents($json_path);
    // 文件不同
    if ($old != $json) {
        // 替換掉 寫新文件
        file_put_contents($json_path, $json);
        $oldInfo = json_decode($old, true);
        // 獲取差值
        $data = getDiffArrayByTitle($data, $oldInfo);
    } else {
        // 相同就不發(fā)了
        echo date("Y-m-d H:i:s", time()). "內(nèi)容相同".PHP_EOL;
          return;
    }
} else {
    // 不存在 寫文件
    file_put_contents($json_path, $json);
}

$str = "";
foreach ($data as $key => $item) {
    $num = $key + 1;
    $str .= "{$num}. [{$item["title"]}]({$item["url"]}) 

";
}

// 推送
if (!empty($key)) {
    echo sendByBear("***標(biāo)簽動(dòng)態(tài)", $str);
}

function getDiffArrayByTitle($arr1, $arr2, $pk="title"){
    $res = [];
    foreach($arr2 as $item) $tmpArr[$item[$pk]] = $item;
    foreach($arr1 as $v) if(! isset($tmpArr[$v[$pk]])) $res[] = $v;
    return $res;
}

function sendByBear($text, $desp = "", $key = "")
{
    $postData = http_build_query(
        array(
            "text" => $text,
            "desp" => $desp,
            "sendkey" => $key
        )
    );

    $opts = array("http" =>
        array(
            "method"  => "POST",
            "header"  => "Content-type: application/x-www-form-urlencoded",
            "content" => $postData
        )
    );

    $context = stream_context_create($opts);

    $result = file_get_contents("https://pushbear.ftqq.com/sub", false, $context);

    return $result;
}
結(jié)語

放個(gè)Github倉庫鏈接,如果本文有侵權(quán)思否官方可以刪除

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/31018.html

相關(guān)文章

  • Segmentfault的熱門標(biāo)簽,可視化展示?

    摘要:結(jié)論居首位,緊隨其后,位列第三。數(shù)據(jù)庫方面問題最多的還是。在各種技術(shù)名詞的標(biāo)簽下,還冒出一個(gè)程序員標(biāo)簽,排名第位。 結(jié)論 JavaScript居首位,HTML5緊隨其后,Python位列第三。 注:數(shù)據(jù)來源于569頁標(biāo)簽頁面的11,380 條記錄 showImg(https://segmentfault.com/img/bVXMRf?w=1178&h=548);showImg(http...

    rottengeek 評(píng)論0 收藏0
  • Segmentfault的熱門標(biāo)簽,可視化展示?

    摘要:結(jié)論居首位,緊隨其后,位列第三。數(shù)據(jù)庫方面問題最多的還是。在各種技術(shù)名詞的標(biāo)簽下,還冒出一個(gè)程序員標(biāo)簽,排名第位。 結(jié)論 JavaScript居首位,HTML5緊隨其后,Python位列第三。 注:數(shù)據(jù)來源于569頁標(biāo)簽頁面的11,380 條記錄 showImg(https://segmentfault.com/img/bVXMRf?w=1178&h=548);showImg(http...

    gecko23 評(píng)論0 收藏0
  • Django 學(xué)習(xí)小組:博客開發(fā)實(shí)戰(zhàn)第四周——標(biāo)簽云與文章歸檔

    摘要:本教程內(nèi)容已過時(shí),更新版教程請(qǐng)?jiān)L問博客開發(fā)入門教程。表示降序排列,默認(rèn)是升序排列。學(xué)習(xí)小組簡介學(xué)習(xí)小組是一個(gè)促進(jìn)新手互相學(xué)習(xí)互相幫助的組織。我們會(huì)將每周的詳細(xì)開發(fā)文檔和代碼通過郵件列表發(fā)出。 本教程內(nèi)容已過時(shí),更新版教程請(qǐng)?jiān)L問: django 博客開發(fā)入門教程。 通過前四周的時(shí)間我們開發(fā)了一個(gè)簡單的個(gè)人 Blog,教程地址: 第一周:Django 學(xué)習(xí)小組:博客開發(fā)實(shí)戰(zhàn)第一周教程 ——...

    RichardXG 評(píng)論0 收藏0
  • 同源策略與JS跨域(JSONP , CORS)

    摘要:由此可以看出,同源策略確實(shí)是必不可少的,那么它會(huì)帶來哪些限制呢和無法讀取。由于瀏覽器的同源策略,在網(wǎng)頁端出現(xiàn)了這個(gè)跨域的問題,然而我們發(fā)現(xiàn),所有的屬性并沒有受到相關(guān)的限制,比如等。 本文按照政治問答題必備套路分為以下3個(gè)部分: 為什么要跨域? 跨域是什么? 如何實(shí)現(xiàn)跨域? Section1、為什么要跨域? 自古以來(1995年起),為了用戶的信息安全,瀏覽器就引入了同源策略。那么同...

    Shisui 評(píng)論0 收藏0
  • CSS學(xué)習(xí)筆記(十六) CSS最佳實(shí)踐之可維護(hù)性篇

    摘要:國內(nèi)各大公司都已經(jīng)投入使用,在一些常見的網(wǎng)站,如淘寶騰訊小米等移動(dòng)站點(diǎn),隨處可見其蹤影。變革之騰訊手機(jī)淘寶的設(shè)計(jì)與實(shí)現(xiàn)前端亂燉適配總結(jié)樣式重置上文已提及,這里推薦閱讀同學(xué)寫的專題文章。 前言 CSS代碼難維護(hù)眾所皆知。 為一個(gè)元素設(shè)置樣式的方式可以通過定義的class、定義的id、元素的標(biāo)簽名、元素的屬性等選擇器以及這些選擇器的組合來實(shí)現(xiàn); 作用于某個(gè)元素上的樣式又可能來自單個(gè)樣式規(guī)...

    newtrek 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

qujian

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<