好久没写技术博客了,今天兴起写上一篇。
最近安排新来的同事写爬虫抓站,咨询我如何对ajax型的网页数据进行抓取。比如http://www.chewen.com这个站点,“更多新问题”就是发送的ajax请求。
其实抓ajax的页面和抓普通的页面区别不大。ajax只不过是做了一次异步的http请求,只要使用firebug类似的工具,找到请求的后端服务url和传值的参数,然后对该url传递参数进行抓取即可。利用firebug的网络工具,如图所示:
下面代码就是以车问网站为例,通过curl发送POST请求,获取一页的数据。(其实该url的数据可以直接通过GET获取)
<?php
$opt = "http://www.chewen.com/proc/ajax/getHomeNewQuestion_ajax.jsp";
$post = "lastqid=50934&pgno=1&pagenum=20";
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
curl_setopt($curl, CURLOPT_URL, $opt);
$rs = curl_exec($curl);
$rs = json_decode($rs);
var_dump($rs);
?>
每次只需要更改参数pgno就相当于更改了分页的页码,然后再经行处理就与抓普通的列表页无异了。
- 大小: 75 KB
分享到:
相关推荐
本示例将展示如何使用PHP的curl扩展来抓取AJAX异步内容。 首先,要理解AJAX异步内容抓取与普通页面抓取在技术上并无本质区别。AJAX本质上也是发起一个或多个HTTP请求,区别在于数据是在客户端和服务器之间异步传输...
本文将详细介绍如何使用PHP的cURL库来抓取AJAX异步内容,并提供相应的代码示例。 首先,了解AJAX的工作原理是关键。AJAX(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的...
在创建一个Google网页搜索抓取程序时,开发者可能会使用PHP的cURL库。cURL库允许PHP程序发起HTTP请求,模拟用户在浏览器中的行为,如发送GET或POST请求,获取网页内容。在这个项目中,开发者可能通过设置cURL选项来...
如果目标网站使用了AJAX或者其他动态加载技术,传统的网页抓取可能无法获取所有数据。这时,我们可能需要模拟浏览器行为,比如使用cURL设置cookie和headers,或者使用像Guzzle这样的HTTP客户端库来发送更复杂的请求...
【PHP和AJAX打造高级RSS聚合器】 在Web开发中,RSS聚合器是一个常见的应用,它允许用户收集和查看来自不同来源的RSS订阅。...同时,考虑到性能和安全,还需要对AJAX请求进行适当的优化和错误处理。
JavaScript可以用来处理用户输入,验证数据,或者在无需刷新页面的情况下与服务器进行异步通信(AJAX)。在这种情况下,JavaScript可能被用来处理用户点击事件,触发PHP脚本执行抓取操作。 此外,标签"新款简约PHP...
为了正确抓取数据,需要对目标接口的参数进行分析。比如,itemId代表商品的ID,currentPage代表当前页码,picture参数则用来决定是否显示带有图片的评论。在本实例中,参数picture设置为1意味着要获取带有图片的评论...
2. **遍历和操作DOM**:你可以使用链式调用来对元素进行操作,如添加、删除、修改属性,以及插入和删除元素。例如,`pq('p').text('新文本')`会改变所有段落的文本内容。 3. **事件处理**:虽然phpQuery主要用于...
多彩PHP小说采集系统可能使用MySQL或SQLite等关系型数据库,通过PDO(PHP Data Objects)进行数据库操作,包括数据的插入、更新和查询。 4. 数据清洗与结构化:采集的原始数据可能存在HTML标签、广告代码等冗余信息...
- **MySQL**:PHP通常与MySQL数据库配合使用,MySQL是流行的开源关系型数据库管理系统,用于存储和管理采集到的数据。 - **数据交互**:PHP通过PDO(PHP Data Objects)或mysqli扩展与MySQL进行交互,执行SQL语句...
PHP代码片段展示了如何使用simple_html_dom库来抓取数据。这个库允许我们方便地遍历和操作HTML文档对象模型(DOM)。在给定的代码中,我们首先导入simple_html_dom库,然后根据POST参数获取游戏服务器和玩家名称。...
2. **数据存储**:抓取的网页内容需要存储起来以便后续处理。PHP可以与各种数据库系统交互,如MySQL、PostgreSQL,或者使用NoSQL数据库如MongoDB、Redis,存储大规模非结构化数据。 3. **内容解析**:搜索引擎需要...
此外,AJAX技术可以用来实现无刷新的数据交换,提高用户体验。 PHP是一种常用的服务器端脚本语言,常用于Web开发。在本项目中,PHP可能用于构建后端服务器,处理HTTP请求,与数据库交互,以及与Java或.NET服务进行...
2. **HTTP请求与响应**:小偷网站程序通过发送HTTP请求获取目标网站的数据,这涉及了对PHP的cURL库或者file_get_contents函数的使用,来获取远程页面内容。 3. **HTML解析**:抓取到的网页内容通常是HTML格式,因此...
phpQuery是基于PHP开发的一个强大的网页解析库,它的设计灵感来源于JavaScript库jQuery,因此在使用上有着类似jQuery的语法风格,使得PHP开发者可以方便地在服务器端进行DOM操作,提取和修改HTML或XML文档内容。...
同时,它可能还利用了PHP的内置函数和类库,如cURL来抓取远程网站数据,DOMDocument来解析HTML结构,或者使用正则表达式进行数据提取。 此外,源码可能还涉及到了用户界面的设计,这通常包括HTML、CSS和JavaScript...
这个项目对于想要学习PHP web开发,特别是对数据分析和API接口调用感兴趣的开发者来说,是一个极好的实践案例。 首先,我们要理解Alexa是一个提供全球网站流量和排名信息的服务,它通过收集用户的浏览器数据来评估...