爬取360指数三部曲

  1. 获取360用户的token
  2. 通过账号、密码、token模拟登陆,获取cookie
  3. 设置cookie,爬取360指数

代码实现

<?phpclass CrawlerOf360Data
{private $curl;function __construct(){$this->init_curl_client();}function init_curl_client() {$this->curl = curl_init();curl_setopt($this->curl, CURLOPT_URL, "https://login.360.cn/");curl_setopt($this->curl, CURLOPT_TIMEOUT, 60);curl_setopt($this->curl, CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookie.txt');curl_setopt($this->curl, CURLOPT_COOKIEFILE, dirname(__FILE__).'/cookie.txt');curl_setopt($this->curl, CURLOPT_SSL_VERIFYHOST, 0);curl_setopt($this->curl, CURLOPT_SSL_VERIFYPEER, 0);curl_setopt($this->curl, CURLOPT_RETURNTRANSFER, 1);}function get360Data($name) {//step1:get token$_tokenPostFields = array('callback' => 'jQuery18309010124561026427_1524021670433','src'=> 'pcw_360index','from'=> 'pcw_360index','charset'=> 'UTF-8','requestScema'=> 'https','o'=> 'sso','m'=> 'getToken','userName'=> 'username','_'=> time() * 1000);curl_setopt($this->curl, CURLOPT_POST, true);curl_setopt($this->curl, CURLOPT_POSTFIELDS, $_tokenPostFields);$_tokenResponse = curl_exec($this->curl);$tokenJson = json_decode(preg_split('/[()]/', $_tokenResponse)[1], true);//step2:get cookies$_postLoginFields = array('callback' => 'QiUserJsonp21670482','func' => 'QiUserJsonp21670482','proxy' => 'https://trends.so.com/psp_jump.html','type' => 'normal','src'=> 'pcw_360index','from'=> 'pcw_360index','charset'=> 'UTF-8','requestScema'=> 'https','o'=> 'sso','m'=> 'login','lm'=> '0','userName'=> 'username','account'=> 'username','password'=> 'aeeb3b46c69459542c1457ea3b3a4bc0(md5 32位小写)','token'=> $tokenJson['token'],'_'=> time() * 1000);curl_setopt($this->curl, CURLOPT_POSTFIELDS, $_postLoginFields);curl_exec($this->curl);//step3:get the 360data$cookieFileContents = file_get_contents(dirname(__FILE__).'/cookie.txt');//拼接cookie字符串$cookieArr = explode("\n", $cookieFileContents);$cookie = '';foreach ($cookieArr as $data) {$dataArr = explode("\t", $data);if ($dataArr[0] == '.360.cn' || $dataArr[0] == '#HttpOnly_.360.cn') {$cookie .= "{$dataArr[5]}=$dataArr[6];";}}$url = "https://trends.so.com/index/overviewJson?area=" . urldecode('全国') . '&q=' . urldecode($name);curl_setopt($this->curl, CURLOPT_COOKIE, $cookie);curl_setopt($this->curl, CURLOPT_URL, $url);$result = curl_exec($this->curl);echo $result;}}

补充说明

  • step1:
    -获取token的response,如下所示,解析字符串,获取token即可:login.setSigCallback({"errno":0,"errmsg":"","token":"638f6d593b12d10b"})
  • step2:
    -模拟登陆中,password为md5后的32位小写字符串。
    -模拟登陆成功后,会获得如下的cookie信息:
# Netscape HTTP Cookie File
# http://curl.haxx.se/docs/http-cookies.html
# This file was generated by libcurl! Edit at your own risk..360.cn TRUE    /   FALSE   0   Q   u%3D%25O9%25R3%25Q6%25QQ%25PO%25P4%25P8%25SQ%26n%3D%25O9%25R3%25Q6%25QQ%25PO%25P4%25P8%25SQ%26le%3DnzyhM3IcMT9hMlH0ZQDmBGxhozI0%26m%3D%26qid%3D251535385%26im%3w1_t01923d359dad425928%26src%3Dpcw_360index%26t%3D1
#HttpOnly_.360.cn   TRUE    /   FALSE   0   T   s%3D45ebc94e99d3b53fce0c57f504b2f070%26t%3D1524064257%26lm%3D%26lf%3D4%26sk%3Dd0ad528d2a9e9ef22ee3477128691bf1%26mt%3D1524064257%26rc%3D%26v%3D2.0%26a%3D0
  • step3:
    -在step3时,需要设置cookie,具体cookie文件中最后两行的拼接而成。
    Q\T分别为key,紧跟着Q\T后面即对应的value.
eg:Q=u%3D%25O9%25R3%25Q6%25QQ%25PO%25P4%25P8%25SQ%26n%3D%25O9%25R3%25Q6%25QQ%25PO%25P4%25P8%25SQ%26le%3DnzyhM3IcMT9hMlH0ZQDmBGxhozI0%26m%3D%26qid%3D251535385%26im%3D1_t01923d359dad425928%26src%3Dpcw_360index%26t%3D1;T=s%3D45ebc94e99d3b53fce0c57f404b2f070%26t%3D1524064257%26lm%3D%26lf%3D4%26sk%3Dd0ad528d2a9e9ef22ee3477128691bf1%26mt%3D1524064257%26rc%3D%26v%3D2.0%26a%3D0;

-通过下面的链接测试
https://trends.so.com/index/overviewJson?area=全国&q=微信
可成功得到如下JSON:

{"status":0,"data":[{"query":"\u5fae\u4fe1","data":{"week_year_ratio":">1000%","month_year_ratio":">1000%","week_chain_ratio":"16.18%","month_chain_ratio":"19.46%","week_index":8674687,"month_index":8455856}}],"msg":"success"}

php模拟登陆360网站 爬取360指数相关推荐

  1. 【Python3.6爬虫学习记录】(九)模拟登陆QQ空间爬取好友所有留言并制作词云

    前言:非常郁闷,写了第三遍了,无故404 学了五天了,熬夜搞出这份代码,虽然一度卡死几个小时,但结果是好的. 目录 第一部分 Selenium+Chrome爬取空间留言 1.1 使用说明 1.2 代码 ...

  2. Python模拟登陆新浪微博,爬取用户数据

    目标 爬取新浪微博用户数据,包括以下字段:id,昵称,粉丝数,关注数,微博数,每一篇微博的内容,转发数,评论数,点赞数,发布时间,来源,以及是原创还是转发.(本文以GUCCI(古驰)为例) 方法 + ...

  3. python爬取360百科获取春晚基本信息

    前言 之前看到大佬爬取维基百科获取春晚的信息,做了些数据分析,我也想跟着试一下,但是- 不过我居然在360百科上面发现了多年春晚的信息,便选择从360百科爬取. 站点分析 从网站可以看出,它的每个词条 ...

  4. python爬取360手机助手APP信息

    这是一个爬虫软件,用来爬取360应用市场,App软件信息,现阶段代码只能爬取下载量,如需爬取别的信息,请自行添加代码. 使用方法: 1.在D盘根目录新建.tet文件,命名为App_name,并把App ...

  5. 爬虫学习(二)--爬取360应用市场app信息

    欢迎加入python学习交流群 667279387 爬虫学习 爬虫学习(一)-爬取电影天堂下载链接 爬虫学习(二)–爬取360应用市场app信息 代码环境:windows10, python 3.5 ...

  6. python360指数_Python学习之单线程爬取360看看所有电视剧

    博主最近在跟@小伟学习Python,刚好有一个学习任务是爬取360影视的所有电视剧和电影的图片,播放链接,评分,名字.这个项目使用分布式+队列来做最好,但是我还没学到,所以勉强使用单线程来做一做看.以 ...

  7. python豆瓣影评_教你用python登陆豆瓣并爬取影评

    教你用python登陆豆瓣并爬取影评 一起来 日常学python 这是我的第二篇原创文章 在上篇文章爬取豆瓣电影top250后,想想既然爬了电影,干脆就连影评也爬了,这样可以看看人们评价的电影,再加上 ...

  8. 网站爬取工具_浅析阻碍网站内容被蜘蛛抓取的原因有哪些?

    众所周知,在搜索引擎中存在的蜘蛛其实就是一段代码,这段代码通过在各个网站爬取,以便于网站内容能够被搜索引擎收录.不过一般蜘蛛爬取是按照一定规则进行的,如果网站中出现了一些爬取障碍,那么蜘蛛爬取就会被打 ...

  9. 网站爬取工具_Python项目:结合Django和爬虫开发小说网站,免安装,无广告

    前言 很多喜欢看小说的小伙伴都是是两袖清风的学生党,沉迷小说,不能自拔.奈何囊中甚是羞涩,没有money去看正版小说,但是往往这些免费的小说网站或者小说软件,随之而来的是大量的广告. Python嘛, ...

最新文章

  1. Spring框架简介
  2. OpenGL 对象的概述
  3. 【渝粤教育】国家开放大学2018年春季 0177-22T电机学(二) 参考试题
  4. 1085 PAT单位排行 (25 分
  5. 车纷享:基于阿里云HBase构建车联网平台实践
  6. 53 FI配置-财务会计-固定资产-折旧-维护折旧码
  7. Blueprint的实现
  8. 切片 go 去除第一个_golang学习笔记--切片slice 与数组 arr
  9. FFMPEG结构体分析:AVIOContext
  10. CentOS 7.0 关闭防火墙
  11. Html 5 Input type=range 滑动条
  12. HDU 4475 HDOJ Downward paths
  13. 白光led 计算机模拟,白光LED在TracePro中的建模及仿真
  14. iOS应用程序安全风险及漏洞解析
  15. 《Word中从正文开始设置页码》
  16. 数据中心白皮书 2022东数西算下数据中心高性能计算的六大趋势八大技术
  17. 个人开发者应用如何接入主流微信和支付宝支付
  18. PLC按时间启停设备运转,设备到期停止设备运转
  19. SDN(Software Defined Network) 软件定义网络学习
  20. 集成平台Ensemble环境搭建(HealthShare) 及MIRROR镜像(主备机)的配置

热门文章

  1. 2021天梯赛 L2-040 哲哲打游戏 题解
  2. 攻防世界web高手进阶区ics-05(XCTF 4th-CyberEarth)WriteUp
  3. vid2vid 代码调试+训练+测试(debug+train+test)(二)训练篇
  4. STM32F0项目进阶之实时时钟DS1307
  5. CZSC 官方文档(0.6.8)
  6. 高通 AEC Finale Luma计算过程
  7. 科大奥锐密立根油滴实验数据_(最新)大学物理实验报告系列之密立根油滴实验...
  8. 网盘文件管理系统——java实现
  9. 【转】NLP 的巨人肩膀(下)
  10. PDFBox操作pdf文件转换为图片