PHP获取cookie、Token、模拟登录、抓取数据、解析生成json
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP获取cookie、Token、模拟登录、抓取数据、解析生成json,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3645字,纯文字阅读大概需要6分钟。
内容图文
![PHP获取cookie、Token、模拟登录、抓取数据、解析生成json](/upload/InfoBanner/zyjiaocheng/1313/af079561bedf444d9496d29fbe315d59.jpg)
本文介绍使用PHP获取cookie,获取Token、以及模拟登录、然后抓取数据、最后解析生成json的的过程。
0. 设置Cookie路径
set_time_limit(0); //使用的cookie路径,if (isset($_SERVER[‘HTTP_APPNAME‘])){ $cookie = SAE_TMP_PATH."/cookie.txt"; }else { $cookie = dirname(__FILE__)."/cookie.txt"; }
1、打开页面,获取COOKIEJAR,以及 token,并保存
$url = "http://www.fangbei.org/#agent/login"; $headers = array( "User-Agent: 来源 方倍工作室 www.fangbei.org", "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", "Accept-Language: zh-CN,zh;q=0.9,en;q=0.8", ); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER,false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,false); curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie); //首次只接收$result = curl_exec($curl); curl_close($curl); $pattern = ‘/name="_token" value="(.*?)"/is‘; preg_match_all($pattern, $result, $matches); if (isset($matches[1][0])){ $token = $matches[1][0]; }else{ die("获取token失败"); }
2、登录
# 2. 登录 $url = "http://www.fangbei.org/#/agent/login"; $headers = array( "User-Agent: 来源 方倍工作室 www.fangbei.org", "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", "Accept-Language: zh-CN,zh;q=0.9,en;q=0.8", "Origin: http://www.fangbei.org/#", "Referer: http://www.fangbei.org/#/agent/login", ); $fields = ‘_token=‘.$token.‘&username=fangbei&password=fangbei.org‘; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER,false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,false); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $fields); curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie); //发送cookie curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie); //接收 cookie curl_exec($curl); curl_close($curl);
3. 取数据
$url = "http://www.fangbei.org/#agent/AgentProductLink"; $headers = array( "User-Agent: 来源 方倍工作室 www.fangbei.org", "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", "Accept-Language: zh-CN,zh;q=0.9,en;q=0.8", "Referer: http://www.fangbei.org/#agent/welcome", ); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER,false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,false); curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie); //发送cookie curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie); //接收 cookie$content = curl_exec($curl); curl_close($curl);
4、解析数据,生成json
require_once(‘simple_html_dom.php‘); // var_dump($content);$html_main = str_get_html($content); if (!isset($html_main)){ $html_main->clear(); die("页面载入出错!"); } $tjarray = array(); foreach($html_main->find(‘tr[class="cot"]‘) as$item) { $id = @$item->find(‘td‘, 0)->plaintext; $title = @$item->find(‘td‘, 1)->plaintext; $button = @$item->find(‘div[class="btn btn-fill"]‘, 0)->outertext; $pattern = "/\(\‘(.+?)\‘\)/"; // copyUrl(‘http://www.fangbei.org/#top-apply/Affection-28679‘)preg_match_all($pattern, $button, $matches); $bturl = $matches[1][0]; $tjarray[$id] = array("title"=>urlencode($title),"url"=>urlencode($bturl)); // break;} $html_main->clear(); echourldecode(json_encode($tjarray));
原文:https://www.cnblogs.com/txw1958/p/php-login-simulation.html
内容总结
以上是互联网集市为您收集整理的PHP获取cookie、Token、模拟登录、抓取数据、解析生成json全部内容,希望文章能够帮你解决PHP获取cookie、Token、模拟登录、抓取数据、解析生成json所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。