您好,登錄后才能下訂單哦!
小編給大家分享一下PHP如何實(shí)現(xiàn)登錄搜狐廣告獲取廣告聯(lián)盟數(shù)據(jù),相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
具體如下:
一直有一個(gè)想法,每次都要登錄去看聯(lián)盟昨天收益多少?每天都要登錄和麻煩,能不能做一個(gè)匯總發(fā)郵件的功能呢?
可惜了,驗(yàn)證碼繞不過(guò)去,只能想一個(gè)辦法。先在服務(wù)器手動(dòng)打一次驗(yàn)證碼,然后在通過(guò)定時(shí)器,每隔10分鐘請(qǐng)求一個(gè)頁(yè)面
這樣的話Cookies就不會(huì)失效,,然后每周只需要跟我匯總數(shù)據(jù)就Ok了。。
遠(yuǎn)程提交表單的原理,可以參考:PHP基于curl后臺(tái)遠(yuǎn)程登錄正方教務(wù)系統(tǒng)的方法
參考的代碼還是一樣的如下
獲取驗(yàn)證碼Code.php
define("SITE_PATH", $_SERVER['DOCUMENT_ROOT']); $LoginUrl = "http://union.sogou.com/"; $url = $LoginUrl."validateCode"; $filedir = SITE_PATH."/TMP/Cookies"; $cookie_file = $filedir."/cookie.txt"; if(!mkdirs($filedir)) { echo "目錄創(chuàng)建失敗"; exit; } $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 0); //不返回header部分 curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file); //curl_setopt($ch, CURLOPT_REFERER, "http://125.89.69.234"); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_TIMEOUT, "10"); $response = curl_exec($ch); curl_close($ch); header("Content-type:image/gif"); echo $response; //創(chuàng)建目錄 function mkdirs($dir) { if(!is_dir($dir)) { if(!mkdirs(dirname($dir))){ return false; } if(!mkdir($dir,0777)){ return false; } } return true; }
獲取數(shù)據(jù)的頁(yè)面,這里需要通過(guò)表單來(lái)提交手動(dòng)的驗(yàn)證碼
define("SITE_PATH", $_SERVER['DOCUMENT_ROOT']); require_once SITE_PATH.'/class/SimpleHtmlDom.class.php'; class GetData{ private $url ; public function __construct(){ $this->url = "http://union.sogou.com/index.action?searchBean.timeSegment=yestoday"; $this->LoginUrl = "http://union.sogou.com/"; $this->PostData = $this->LoginUrl."loginauth.action"; $this->table = "dwz_union"; } public function post($code) { $POST['loginFromPage'] = "homePage"; $POST['username'] = "xxxxxx"; $POST['password'] = "xxxxx"; $POST['activecode'] = $code; $POST['button.x']="14"; $POST['button.y']="16"; foreach($POST as $key=>$value) { $tmp[] = $key."=".$value; } $postStr = implode("&", $tmp); $filedir = SITE_PATH."/TMP/Cookies"; $cookie_file = $filedir."/cookie.txt"; $result = $this->curl($this->PostData, "http://union.sogou.com/loginauth.action", $postStr, $cookie_file); $url = "http://union.sogou.com/index.action"; $postArr = "searchBean.timeSegment=yestoday"; $response = $this->curl($url, " http://union.sogou.com/index.action?pid=dengwz7788", $postArr, $cookie_file); $this->saveData($response); } private function saveData($response) { $dom = str_get_html($response); $tmp = $dom->find('div.rtable table tbody tr',1)->plaintext; $data = preg_split("/\s+/i", $tmp); $this->link(); $date = date('Y-m-d',strtotime('-1 day')); $datetime = date('Y-m-d H:i:s'); $money = $data['4']; $shows = $data['2']; $times = $data['3']; $sql = "select sum(money) as total from {$this->table}"; $query = mysql_query($sql); $totaTmp = mysql_fetch_row($query); var_dump($totalTmp); if(empty($totaTmp['0'])) { $total = $money; }else{ $total = $totaTmp['0']+$money; } $sql = "insert into {$this->table}(date,datetime,money,shows,times,total) values('{$date}','{$datetime}','{$money}','{$shows}','{$times}','{$total}')"; mysql_query($sql); } private function link() { $link = mysql_connect('localhost', 'root', ''); mysql_select_db('dblog', $link); mysql_query('SET NAMES utf8'); } private function saveHtml($infomation,$filedir,$filename) { if(!$this->mkdirs($filedir)) { return 0; } $sf = $filedir."/".$filename; $fp=fopen($sf,"w"); //寫方式打開文件 fwrite($fp,$infomation); //存入內(nèi)容 fclose($fp); //關(guān)閉文件 } //創(chuàng)建目錄 private function mkdirs($dir) { if(!is_dir($dir)) { if(!$this->mkdirs(dirname($dir))){ return false; } if(!mkdir($dir,0777)){ return false; } } return true; } public function login() { $filedir = SITE_PATH."/TMP/Cookies"; if(!$this->mkdirs($filedir)) { echo "目錄創(chuàng)建失敗"; exit; } $cookie_file = $filedir."/cookie.txt"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $this->LoginUrl); curl_setopt($ch, CURLOPT_HEADER, 0); //不返回header部分 curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file); //curl_setopt($ch, CURLOPT_REFERER, "http://125.89.69.234"); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_TIMEOUT, "10"); $response = curl_exec($ch); curl_close($ch); // 鍏抽棴CURL浼?xì)璇? } private function curl($url,$url2,$fields,$cookie_file) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 0); //不返回header部分 curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $fields); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Host: union.sogou.com" )); curl_setopt($ch, CURLOPT_REFERER,$url2); $response = curl_exec($ch); //echo curl_error($ch); curl_close($ch); return $response; } } $GetData = new GetData(); if(isset($_POST['code'])) { $GetData->POST($_POST['code']); }
以上是“PHP如何實(shí)現(xiàn)登錄搜狐廣告獲取廣告聯(lián)盟數(shù)據(jù)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。