在看文章以前,先上一個圖片看看咱們要達到的實際效果。
這是一個自動運做的過程,自動過程因爲是基於chrome插件實現的,實現起來也比較簡單,因此這裏不作這方面的分析(關於chrome插件自動化實現思路,我接下來的博文再作分析)。這裏我只作一下如何實現文章概要的總結並混淆實現僞原創的過程。
一、抓取文章text文本php
利用chrome插件獲取頁面html富文本內容,過慮掉html標籤,獲得純文本內容,過慮正則表達式爲:"/<[^>]*?>/ig" 。
二、總結文章概要html
這裏直接使用現成的新聞摘要提取接口: http://showdoc.dagoogle.cn/index.php/Home/page/index?page_id=127
三、文章內容的混淆實現僞原創前端
實現自動僞原創的思路千萬種,最好的不過是自動重寫了,但要作到自動重寫,通常手段是沒法實現的,因此我這裏只嘗試了抓取5118.com網站的每日熱門詞(接口https://www.jsanai.com/hotwords)進行自動關鍵詞混淆,提供下php實現html富文本自動插入關鍵詞的代碼
//隔開html隨機向指定文本插入內容,txt 內容;insert要插入的關鍵字,能夠是連接,數組 function rand_in_str($txt,$insert){ //將內容拆分紅數組,每一個字符都是一個value,英文,中文,符號都算一個,只能在utf-8下中文才能拆分 preg_match_all("/[\x01-\x7f]|[\xe0-\xef][\x80-\xbf]{2}/", $txt, $match); $delay=array(); $add=0; //獲取不能插入的位置索引號($delay 數組),也就是< > 之間的位置 foreach($match[0] as $k=>$v){ if($v=='<') $add=1; if($add==1) $delay[]=$k; if($v=='>') $add=0; } $str_arr=$match[0]; $len=count($str_arr); if(is_array($insert)){ foreach($insert as $k=>$v){ //獲取隨機插入的位置索引值 $insertk=insertK($len-1,$delay); //循環將insert數據 拼接到 隨機生成的索引 $str_arr[$insertk] .= $insert[$k]; } } else{ //獲取隨機插入的位置索引值 $insertk=insertK($len-1,$delay); //循環將insert數據 拼接到 隨機生成的索引 $str_arr[$insertk] .= $insert; } //合併插入 關鍵詞後的數據,拼接成一段內容 return join('',$str_arr); } function insertK($count,$delay){//count 隨機索引值範圍,也就是內容拆分紅數組後的總長度-1;delay 不容許的隨機索引值,也就是不能在 < > 之間 $insertk=rand(0,$count); if(in_array($insertk,$delay)){//索引值不能在 不容許的位置處(也就是< > 以內的索引值) $insertk=insertK($count,$delay);//遞歸調用,直到隨機插入的索引值不在 < > 這個索引值數組中 } return $insertk; }
四、自動推送至百度或者其餘正則表達式
自動推送能夠後端實現,但使用後端實現的效果,不如使用前端js推送的效果好,因此爲了實現前端js推送,就必須有人訪問這個頁面實現,因而我這裏就順帶使用微頭條的興趣推送功能,把文章概要做爲內容發到微頭條,而後附加上文章連接做爲微頭條的詳情連接,這樣就算沒有人點擊查看這微頭條,字節跳動公司的服務器也會經過內部服務器對附帶的連接進行模擬訪問,這個訪問其實也達到了自動推送的功能。
整個流程的實現代碼,將會在後續的文章中一個個展現,歡迎關注此話題。