Created
July 28, 2017 12:16
-
-
Save wjfz/7c3c44fbb45315d30caf731e8f9e3be9 to your computer and use it in GitHub Desktop.
jdjd
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public function actionJd() | |
{ | |
$first = JdSku::model()->find("fetched = 0"); | |
echo $first->sku."\n\n"; | |
$this->doFetch($first->sku); | |
$first->fetched = 1; | |
$saved = $first->save(); | |
if ($saved == false) { | |
var_dump($first->getErrors()); | |
return false; | |
} | |
sleep(rand(1,3)); | |
//pclose(popen("cd /Users/wangjunfengze/Develop/php/qsq/frontend && ./app/yiic test jd >> /Users/wangjunfengze/jd.log &", 'r')); | |
echo "ok\n\n"; | |
return true; | |
} | |
private function doFetch($sku) | |
{ | |
$header[] = "Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"; | |
$header[] = "Accept-Language:zh-CN,zh;q=0.8,zh-TW;q=0.6,en;q=0.4"; | |
$header[] = "Connection:keep-alive"; | |
$header[] = "DNT:1"; | |
$header[] = "Host:diviner.jd.com"; | |
$header[] = "Upgrade-Insecure-Requests:1"; | |
$ch = curl_init(); | |
$options = array( | |
CURLOPT_URL => "https://diviner.jd.com/diviner?lid=1&lim=12&ec=utf-8&uuid=1501236808685830916046&pin=&p=902011&sku={$sku}&ck=pin&c1=1713&c2=3259&c3=3336&callback=jQuery3151661&_=1501239935627", | |
CURLOPT_TIMEOUT => 5, | |
CURLOPT_RETURNTRANSFER => true, | |
CURLOPT_SSL_VERIFYPEER => false, | |
CURLOPT_SSL_VERIFYHOST => false, | |
CURLOPT_AUTOREFERER => false, | |
CURLOPT_FOLLOWLOCATION => false, | |
CURLOPT_HEADER => false, | |
CURLOPT_COOKIE => '', | |
CURLOPT_ENCODING => 'gzip, deflate, br', | |
CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36', | |
CURLOPT_HTTPHEADER => $header | |
); | |
curl_setopt_array($ch, $options); | |
$result = curl_exec($ch); | |
curl_close($ch); | |
preg_match("|jQuery3151661\((.*)\)|", $result, $matches); | |
$skusJson = $matches[1]; | |
$skus = json_decode($skusJson); | |
foreach ($skus->data as $product) { | |
$newSku = $product->sku; | |
echo $product->sku."\n"; | |
echo $product->t."\n"; | |
echo "原价:".$product->mp."\n"; | |
echo "现价:".$product->jp."\n"; | |
echo "".$product->img."\n"; | |
$check = Yii::app()->db->createCommand()->select('id')->from('jd_sku')->where("sku = '$newSku'")->queryColumn(); | |
if (empty($check)) { | |
$model = new JdSku(); | |
$model->sku = $newSku; | |
$model->title = $product->t; | |
$model->mp = $product->mp; | |
$model->jp = $product->jp; | |
$model->img = $product->img; | |
$model->save(); | |
echo "$newSku success\n\n"; | |
} else { | |
echo "$newSku jump\n\n"; | |
} | |
} | |
return true; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment