PHPcurl抓取AJAX异步内容

其实抓ajax异步内容的页面和抓普通的页面区别不大。ajax只不过是做了一次异步的http请求,只要使用firebug类似的工具,找到请求的后端服务url和传值的参数,然后对该url传递参数进行抓取即可。

利用Firebug的网络工具

如果抓去的是页面,则内容中没有显示的数据,是一堆JS代码。

Code

$cookie_file=tempnam('./temp','cookie');
$ch = curl_init();
$url1 = "http://www.cdut.edu.cn/default.html";
curl_setopt($ch,CURLOPT_URL,$url1);
curl_setopt($ch,CURLOPT_HTTP_VERSION,CURL_HTTP_VERSION_1_1);
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch, CURLOPT_ENCODING ,'gzip'); //加入gzip解析
//设置连接结束后保存cookie信息的文件
curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie_file);
$content=curl_exec($ch);curl_close($ch);$ch3 = curl_init();
$url3 = "http://www.cdut.edu.cn/xww/dwr/call/plaincall/portalAjax.getNewsXml.dwr";
$curlPost = "callCount=1&page=/xww/type/1000020118.html&httpSessionId=12A9B726E6A2D4D3B09DE7952B2F282C&scriptSessionId=295315B4B4141B09DA888D3A3ADB8FAA658&c0-scriptName=portalAjax&c0-methodName=getNewsXml&c0-id=0&c0-param0=string:10000201&c0-param1=string:1000020118&c0-param2=string:news_&c0-param3=number:5969&c0-param4=number:1&c0-param5=null:null&c0-param6=null:null&batchId=0";
curl_setopt($ch3,CURLOPT_URL,$url3);
curl_setopt($ch3,CURLOPT_POST,1);
curl_setopt($ch3,CURLOPT_POSTFIELDS,$curlPost);//设置连接结束后保存cookie信息的文件
curl_setopt($ch3,CURLOPT_COOKIEFILE,$cookie_file);
$content1=curl_exec($ch3);
curl_close($ch3);

我是天王盖地虎的分割线

原文链接

本文由豆约翰博客备份专家远程一键发布

转载于:https://www.cnblogs.com/xchsp/p/4287800.html

PHPcurl抓取AJAX异步内容(转载)相关推荐

  1. c 抓取ajax异步数据,用requests.post提交表单抓取异步ajax信息失败

    python爬虫之后,为什么出现了信息不一致,在浏览器中直接查看的信息与最后经过爬虫之后数据不一致. 代码 import requests from bs4 import BeautifulSoup ...

  2. 利用Crowbar抓取网页异步加载的内容 [Python俱乐部]

    利用Crowbar抓取网页异步加载的内容 [Python俱乐部] 利用Crowbar抓取网页异步加载的内容 [Python俱乐部] 利用Crowbar抓取网页异步加载的内容 在做 Web 信息提取.数 ...

  3. 如何让搜索引擎抓取AJAX内容

    2019独角兽企业重金招聘Python工程师标准>>> 越来越多的网站,开始采用"单页面结构"(Single-page application). 整个网站只有一 ...

  4. 用C#抓取AJAX页面的内容

    用C#抓取AJAX页面的内容[转] 现在的网页有相当一部分是采用了AJAX技术,不管是采用C#中的WebClient还是HttpRequest都得不到正确的结果,因为这些脚本是在服务器发送完毕后才执行 ...

  5. C#利用phantomJS抓取AjAX动态页面

    在C#中,一般常用的请求方式,就是利用HttpWebRequest创建请求,返回报文.但是有时候遇到到动态加载的页面,却只能抓取部分内容,无法抓取到动态加载的内容. 如果遇到这种的话,推荐使用phan ...

  6. 简单爬取微博评论详细解析,学习爬取ajax异步数据交换动态网页

    爬取微博评论详细解析,学习爬取ajax异步数据交换动态网页 1.什么是ajax异步数据交换网页 2.用到的工具模块和简单解释 3.网页内容解析 4.代码实现及解释 1.什么是ajax异步数据交换网页 ...

  7. 爬虫Spider 05 - 代理参数-proxies | 控制台抓包 | requests.post() | 动态加载数据抓取-Ajax

    文章目录 Spider 04回顾 requests.get()参数 常见的反爬机制及处理方式 Spider 05笔记 代理参数-proxies **控制台抓包** **requests.post()参 ...

  8. python爬虫搜特定内容的论文_python基于BeautifulSoup实现抓取网页指定内容的方法...

    python基于BeautifulSoup实现抓取网页指定内容的方法 更新时间:2015年07月09日 10:12:50 作者:光索与诺 这篇文章主要介绍了python基于BeautifulSoup实 ...

  9. python 抓取天涯帖子内容并保存

    python 抓取天涯帖子内容并保存 作者:大捷龙 csdn : http://blog.csdn.net/koanzhongxue ** 分析:天涯的帖子下载可以分为以下几个步骤 手动传入一个帖子首 ...

最新文章

  1. Java8 Stream流递归,几行代码搞定遍历树形结构
  2. 字符串匹配的KMP算法
  3. TensorFlow 笔记4--使用tensorboard
  4. MySQL中将多行查询结果合并为一行展示SQL语句书写
  5. 程序异常exitcode非0_ARM寄存器分析以及异常处理方法
  6. 总结-变量命名变量提升运算符判断函数数组对象数据类型
  7. java.util.NoSuchElementException: None.get的解决方法
  8. 使用Appium进行Android自动化测试遇到编译不成功的错误处理
  9. 极域电子教室中计算机图标对齐,极域电子教室使用手册整理,新手必备
  10. 基于python的异方差检验_【Python】统计科学之讲讲异方差的检验
  11. Word如何删除尾注的横线(Office 2003)
  12. 广告行业中那些趣事系列43:小布语音助手知识问答比赛优化实践
  13. 怎样在百度UMeditor编辑器中插入腾讯和爱奇艺网站视频?
  14. 膨胀卷积的缺点_卷积、反卷积与膨胀卷积
  15. 基于 python 和 UDP 协议实现简易聊天室(多人群聊)----详细解析带字幕
  16. c语言51单片机湿度浇花器,基于51单片机的室内自动浇花系统的制作方法
  17. linux卸载beyondcompare,CentOS上运行BeyondCompare
  18. 理解webpack中的devTool的配置项
  19. 航模遥控继电器单通道控制2路继电器开关实现原理解析
  20. 七牛云 RTN:基于 WebRTC 零基础搭建实时音视频平台

热门文章

  1. 时间复杂度和空间复杂度[数据结构]
  2. HDU 1244 DP
  3. K-Means算法Demo
  4. 2013搜狗校园招聘笔试题
  5. netflix数据处理2(转)
  6. python中continue用法案例_Python continue语句实例用法
  7. dct变换的主要优点有哪些_发泡保温材料包括哪些成分?主要优点是什么?有没有发展前景?...
  8. matlab bwlabel标记连通区域
  9. eclipse中查看某个方法(函数)被谁调用
  10. 关于vs2008上的socket链接错误问题