PHP怎样pathon抓取网页代码码中动态(Ajax

新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
稍有积蓄, 积分 443, 距离下一级还需 57 积分
论坛徽章:1
本帖最后由 plumdavid 于
12:10 编辑
想在PHP中调用服务器(linux系统)上的ping命令,把ping的返回过程在web页面中,有什么办法实现吗?
如:$ ping
PING .cn (121.194.0.239) 56(84) bytes of data.
64 bytes from 121.194.0.239: icmp_seq=1 ttl=59 time=0.391 ms
64 bytes from 121.194.0.239: icmp_seq=2 ttl=59 time=0.385 ms
64 bytes from 121.194.0.239: icmp_seq=3 ttl=59 time=0.459 ms
64 bytes from 121.194.0.239: icmp_seq=4 ttl=59 time=0.331 ms
64 bytes from 121.194.0.239: icmp_seq=5 ttl=59 time=0.600 ms
64 bytes from 121.194.0.239: icmp_seq=6 ttl=59 time=0.486 ms
64 bytes from 121.194.0.239: icmp_seq=7 ttl=59 time=0.491 ms复制代码ping命令返回记录是不断添加的,在web页面中也要达到这样效果
小富即安, 积分 3309, 距离下一级还需 1691 积分
论坛徽章:13
可以考虑用libevent
稍有积蓄, 积分 443, 距离下一级还需 57 积分
论坛徽章:1
本帖最后由 plumdavid 于
17:37 编辑
bikong0411
& & 好高端,我看看先。
白手起家, 积分 12, 距离下一级还需 188 积分
论坛徽章:0
本帖最后由 幽烛 于
17:29 编辑
function do_command($commandName, $args)
& & $buffer = &&;
& & if (false === ($command = find_command($commandName)))
& & if ($fp = @popen(&$command $args&, 'r'))
& & & & & & & & while (!@feof($fp))
& & & & & & & & {
& & & & & & & & & & & & $buffer .= @fgets($fp, 4096);
& & & & & & & & }
& & & & & & & & @pclose($fp);
& & & & & & & & return trim($buffer);
function find_command($commandName)
& & $path = array('/bin', '/sbin', '/usr/bin', '/usr/sbin', '/usr/local/bin', '/usr/local/sbin');
& & foreach($path as $p)
& && &&&if (@is_executable(&$p/$commandName&)) return &$p/$commandName&;
稍有积蓄, 积分 443, 距离下一级还需 57 积分
论坛徽章:1
& & 大侠,你这是查找文件?
& & 我想把ping命令的终端输出在web页面里展示,你的代码能实现吗?
小富即安, 积分 2665, 距离下一级还需 2335 积分
论坛徽章:0
研究一下Ajax能否实现。普通后台脚本程序,一次执行就结束了。
稍有积蓄, 积分 443, 距离下一级还需 57 积分
论坛徽章:1
Cyberman.Wu
& & 我用ajax实现了,但比较复杂,具体方法如下:
ping命令写入文件中,使用ajax调用文件数据在web页面中.
实现是实现了,但文本\linux命令\php语言之间的耦合度太高了,代码可维护性不高.
白手起家, 积分 12, 距离下一级还需 188 积分
论坛徽章:0
哎~~看来楼主还没看懂代码
稍有积蓄, 积分 443, 距离下一级还需 57 积分
论坛徽章:1
& & 长知识了.
& & 虽然你算法中用到的一些函数我不熟悉,但你的思路我明白了,多谢.
家境小康, 积分 1175, 距离下一级还需 825 积分
论坛徽章:1
学习了,幽烛的代码有点像网页画图的做法。
北京盛拓优讯信息技术有限公司. 版权所有 京ICP备号 北京市公安局海淀分局网监中心备案编号:22
广播电视节目制作经营许可证(京) 字第1234号
中国互联网协会会员&&联系我们:
感谢所有关心和支持过ChinaUnix的朋友们
转载本站内容请注明原作者名及出处拒绝访问 | www. | 百度云加速
请打开cookies.
此网站 (www.) 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(3c8dbd-ua98).
重新安装浏览器,或使用别的浏览器php+ajax实现无刷新动态加载数据技术
投稿:hebedich
字体:[ ] 类型:转载 时间:
无刷新功能我们用到很多很多的,下面我就来给各位介绍一个实例,就是实现php+ajax实现无刷新滚屏加载数据,例子非常的简单大家只要按流程来操作就可以了哦。
我们浏览有些网页的时候,当拉动浏览器的滚动条时到页底时,页面会继续自动加载更多内容供用户浏览。这种技术我暂且称它为滚屏加载技术。我们发现很多网站用到这种技术,必应图片搜索、新浪微博、QQ空间等将该技术应用得淋漓尽致。
滚屏加载技术,就是使用Javascript监视滚动条的位置,每次当滚动条到达浏览器窗口底部时,触发一个Ajax请求后台PHP程序,返回相应的数据,并将返回的数据追加到页面底部,从而实现了动态加载,其实就是一个典型的Ajax应用。本文将使用jQuery,结合PHP,mysql以及JSON,为您讲解如何应用滚屏加载技术到您的项目中去。当然,阅读本文的前提是您需要有jQuery和PHP相关基础。
我们默认要显示15条数据,因此,我们先从数据库取开始的15条数据显示在页面。后面新加载的数据,我们也按每次15条的方式展示。
为了讲解尽量简单,我使用原生的PHP和mysql查询语句。首先,需要连接数据库,包含连接信息的connnect.php。这里我定义了几个用户id。
然后查询数据表,获得结果集,并循环输出,代码如下:
require_once('connect.php');
$user = array('demo1','demo2','demo3','demo3','demo4');
&div id="container"&
$query=mysql_query("select * from say order by id desc limit 0,15");
while ($row=mysql_fetch_array($query)) {
&div class="single_item"&
&div class="element_head"&
&div class="date"&&?php echo date('m-d H:i',$row['addtime']);?&&/div&
&div class="author"&&?php echo $user[$row['userid']];?&&/div&
&div class="content"&&?php echo $row['content'];?&&/div&
&?php } ?&
&div class="nodata"&&/div&
注:本例使用的数据来源于本站文章:,文中有创建数据表的介绍。
1、首先,我们要获取浏览器可视区域页面的高度:
代码如下:var winH = $(window).height();
2、然后,当滚动页面的时候需要做的事情是:计算页面总高度(当滚动底部时,页面新加载数据,所以页面总高度是动态变化的),计算滚动条位置(滚动条位置也是随着加载页面的高度动态变化的),然后构造一个公式,计算相对比例。
$(window).scroll(function () {
var pageH = $(document.body).height(); //页面总高度
var scrollT = $(window).scrollTop(); //滚动条top
var aa = (pageH-winH-scrollT)/winH;
3、当滚动条接近页底时,触发ajax加载,在本例中我们使用jQuery的getJSON方法,向服务端result.php发送请求,请求的参数为page,即页数。
if(aa&0.02){
$.getJSON("result.php",{page:i},function(json){
4、如果请求响应成功返回JSON数据,则解析JSON数据,并将数据追加到页面DIV#container后,如果没有JSON数据返回,则说明数据全部显示完毕
var str = "";
$.each(json,function(index,array){ //遍历
var str = "..."; //获取的JSON数据
$("#container").append(str); //追加
i++; //页数+1
$(".nodata").show().html("别滚动了,已经到底了。。。");
完整的jQuery代码如下:
$(function(){
var winH = $(window).height(); //页面可视区域高度
var i = 1; //设置当前页数
$(window).scroll(function () {
var pageH = $(document.body).height();
var scrollT = $(window).scrollTop(); //滚动条top
var aa = (pageH-winH-scrollT)/winH;
if(aa&0.02){
$.getJSON("result.php",{page:i},function(json){
var str = "";
$.each(json,function(index,array){
var str = "&div class=\"single_item\"&&div class=\"element_head\"&";
var str += "&div class=\"date\"&"+array['date']+"&/div&";
var str += "&div class=\"author\"&"+array['author']+"&/div&";
var str += "&/div&&div class=\"content\"&"+array['content']+"&/div&&/div&";
$("#container").append(str);
$(".nodata").show().html("别滚动了,已经到底了。。。");
result.php
当滚动到页面底部时,前端Ajax请求到result.php,该后台程序将根据请求的数据页数:page,查询数据表中对应的记录,并将记录集以json的格式输出返回给前端处理。
require_once('connect.php'); //连接数据库
$user = array('demo1','demo2','demo3','demo3','demo4');
$page = intval($_GET['page']); //获取请求的页数
$start = $page*15;
$query=mysql_query("select * from say order by id desc limit $start,15");
while ($row=mysql_fetch_array($query)) {
$arr[] = array(
'content'=&$row['content'],
'author'=&$user[$row['userid']],
'date'=&date('m-d H:i',$row['addtime'])
echo json_encode($arr); //转换为json数据输出
好了,本文的介绍到此结束,快去看看效果吧。
以上所述就是本文的全部内容了,希望大家能够喜欢。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具我用ajax获取后台数据并展示在前端页面的方法【;WEB前端开发与传统的网页制作最大的一个区别就是;今天为大家说一下如何运用Ajax调用后台数据显示;源码中有详细的注释说明,只要懂得Ajax的基本工;下面是我在本地环境中测试的案例源代码:;HTML部分:;CSS部分:;*{margin:0padding:0px;tr{list-style:c
我用ajax获取后台数据并展示在前端页面的方法【源码】
WEB前端开发与传统的网页制作最大的一个区别就是:以前的网页制作只是涉及到一些图片制作、切图、然后实现静态页面的布局;而WEB前端开发既然涉及到开发,就会和后台打交道,后台或数据库里边的信息要根据用户的需求显示在前端特定的位置上,供用户查看。所以现在的前端开发不仅仅是会点div、css或者是简单的javascript特效就可以了。
今天为大家说一下如何运用Ajax调用后台数据显示在前端页面。
源码中有详细的注释说明,只要懂得Ajax的基本工作原理和javascript和运行机制,就能看得懂。
下面是我在本地环境中测试的案例源代码:
HTML部分:
<table id=\<button id=\球星资料查询
*{margin:0padding:0px} tr{list-style:clear:margin-bottom:10px} table{counter-reset:margin:0px} tr:before{list-style:content:counter(count);counter-increment:count 1;display:float:width:20height:20background:#color:#text-align:line-height:20margin-right:10px} table tr td{padding:0px 10line-height:30font-size:14px}
Javascript部分:
var oList = document.getElementById(\var oBtn = document.getElementById(\//点击按钮,加载后台内容 oBtn.onclick = function(){
ajax(\} //把从后台获取到的内容展示在前端 function fn(data){
var data = eval(data);
var dLength = data.
//alert(data.constructor);
var str = \ for(var i=0; i<dL i++){
str +=\姓名:\所属球队:\ }
oList.innerHTML = } //通过ajax获取后台数据 function ajax(method,url,ayne){
if(window.XMLHttpRequest){
xhr = new XMLHttpRequest();
xhr = new ActiveXObject(\ }
xhr.open(method,url,ayne);
xhr.send();
xhr.onreadystatechange = function(){
if(xhr.readyState==4){
if(xhr.status>=200&&xhr.status<300){
fn(xhr.responseText);
alert(\程序有误!\
因为ajax只能在服务器运行,所以我在本地电脑安装了wampserve环境做的测试。
这里需要一个后台文件,我用的是php,大家如果懂php可以用php做测试。如果不懂后台程序,可以在我的个人博客中,找到100个javascript特效源码下载,然后就会看到这篇文章,可以在那里下载全部源码!
三亿文库包含各类专业文献、专业论文、各类资格考试、应用写作文书、幼儿教育、小学教育、高等教育、文学作品欣赏、行业资料、中学教育、54我用ajax获取后台数据并展示在前端页面的方法【源码】等内容。 
 前端和后台接口理解_计算机软件及应用_IT/计算机_...数据,一个办法就是利用 AJAX 和 JS/JQUERY 的方法...比如: 前台请求 SQL 数据到页面进行展示 页面加载,...  我们的页面 Ajax 的原理: 提出一个请求走后台,然后...到服务器端,并接收服务器返 回的响应信息和数据。...种方法时使用 window.open()方法重新 打开一个页面...  前台后台传送和接收值的方法_计算机软件及应用_IT/...在web 窗体中的处理方法: .aspx 页面代码: &%@...ajax、post、load 方法的简单应用: jQuery 的应用...  一些具体代表性的 AJAX 开发方法,我将用实际的示例...前端代码不够独立,必须要在页面中添加引用之后才能...如果客户端需要一个【获取当前用户信息】的功能,而...  C#实现简易ajax调用后台方法_计算机软件及应用_IT/计算机...肯定会创建很多的 ashx 戒 aspx 页面,通过 拼接...{ var json = ...//获取数据 ...  内容部分 我在页面中通过 ajax 调用后台方法服务,...2 2 2 3 2 4 后台得到的 json 数据如下: [ ...为空或不是对象 应该是这个 【dataObj.length】。...  JqueryAjax调用aspx页面方法_计算机软件及应用_IT/...(data.d);//返回的数据用 data.d 获取内 容 }...用 ajax 提交给后台方法是 用: & script type =...  一些具体代表性的 AJAX 开发方法,我将用实际的示 ...如果客户端需要一个【获取当前用户信息】的功能,而...而且页面也不需要再添加什么 引用,我们就直接看前端...关于爬虫,用java如何获取js/ajax执行后的返回完整网页源代码?
来源:csdn
【就是按IE的F12后得到的网页源代码,
/fenxi/yazhi_same.php?cid=5&cp=平手/半球&id==0.800&s2=0.960
这个网页,我想得到的内容在源代码中是这样的,
数据加载中,请稍候....
求教,如何获取这部分的内容,谢谢!】
噢,不太明白你的意思,整个网页都能爬下来,难道取其中一段还能有什么问题吗?
楼主的需求是不是只要获取ajax请求返回的那些数据啊,如果是的话你看下它ajax请求到哪个地址上传什么参数过去,你模拟他用httpURLConnection请求哪个ajax的地址传同样的参数过去就可以获取那段内容了
bailin710258:
用程序模拟该http请求,得到返回的页面代码后用正则表达式分割出你想要的部分
java.net.URL l_url = new java.net.URL("/fenxi/yazhi_same.php?cid=5&cp=平手/半球&id==0.800&s2=0.960");
java.net.HttpURLConnection l_connection = (java.net.HttpURLConnection) l_url.openConnection();
l_connection.connect();
l_urlStream = l_connection.getInputStream();
java.io.BufferedReader l_reader = new java.io.BufferedReader(new java.io.InputStreamReader(l_urlStream));
//str就是页面代码,用split函数和正则表达式分割str
String str=l_reader.readLine();
学习了..每天进步一点点.
zhongxianyao:
* 获取某个网页的内容
* @param url
网页的地址
* @param code 网页的编码,不传就代表UTF-8
* @return 网页的内容
* @throws IOException
public static String fetch_url(String url, String code) throws IOException {
BufferedReader bis =
InputStream is =
InputStreamReader inputStreamReader =
URLConnection connection = new URL(url).openConnection();
connection.setConnectTimeout(20000);
connection.setReadTimeout(20000);
connection.setUseCaches(false);
connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11");
is = connection.getInputStream();
inputStreamReader = new InputStreamReader(is, code);
bis = new BufferedReader(inputStreamReader);
String line =
StringBuffer result = new StringBuffer();
while ((line = bis.readLine()) != null) {
result.append(line);
return result.toString();
} finally {
if (inputStreamReader != null) {
inputStreamReader.close();
} catch (IOException e) {
e.printStackTrace();
if (bis != null) {
bis.close();
} catch (IOException e) {
e.printStackTrace();
if (is != null) {
is.close();
} catch (IOException e) {
e.printStackTrace();
怎么搞呢,还真不懂
免责声明:本站部分内容、图片、文字、视频等来自于互联网,仅供大家学习与交流。相关内容如涉嫌侵犯您的知识产权或其他合法权益,请向本站发送有效通知,我们会及时处理。反馈邮箱&&&&。
学生服务号
在线咨询,奖学金返现,名师点评,等你来互动

我要回帖

更多关于 抓取微信网页代码 的文章

 

随机推荐