你是想抓别人网页上ajax动态载入的数据吧?
成都创新互联专注于双峰网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供双峰营销型网站建设,双峰网站制作、双峰网页设计、双峰网站官网定制、微信小程序定制开发服务,打造双峰网络公司原创品牌,更为您提供双峰网站排名全网营销落地服务。
1、要找到它的ajax载入的URL地址
2、利用PHP的file_get_contents($url)函数读取那个url地址。
3、对抓取到的内容进行分析或正则过滤。
比如你有一个城市表
city,有字段id和city_name,
代码如下:
?php
$sql
=
'select
*
from
city';
$res
=
mysql_query($sql);
$cities
=
array();
while
($row
=
mysql_fetch_assoc($res)
)
{
$cities[$row['id']]
=
$row['name'];
}
?
--
请选择城市
--
?php
foreach
(
$cities
as
$id=
$city
)
{
?
?php
echo
$city;
?
原理就是从mysql查询出所有城市的数据并弄成一个数组$cities
,然后循环$cities,按照下拉表单的格式输出option选项就好了
先获取整个网页的内容,然后匹配到你说的数据,嵌套到自己的网站,隔一段时间ajax运行一次。
$url = "网站地址目录";
$queryServer = curl_init();
curl_setopt($queryServer, CURLOPT_URL, $url);
curl_setopt($queryServer, CURLOPT_HEADER, 0);
curl_setopt($queryServer, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($queryServer, CURLOPT_RETURNTRANSFER, true);
curl_setopt($queryServer, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($queryServer, CURLOPT_TIMEOUT, 30);
$html = curl_exec($queryServer);
$html = iconv('UTF-8','GBK//IGNORE',$html); //如果你需要是的数据是utf-8编码的,这一行可以注销,如果需要gbk编码的,请保留.如果出现乱码,就是一行的问题,你自己调着试吧
//echo $holder;exit; 此处可以输出来测试.
$html = str_replace(array("\n","\r","\t"),"",$html);
$preg = '/table\s+width=\"800\"[^]+(.*?)\/table/';
preg_match_all($preg,$html,$out);
//匹配每行
preg_match_all('/tr[^]+(.*?)\/tr/',$out[1][0],$tr);
//匹配每个td
$result = array();
$match = '/td.+([^]+)\/td/U';
foreach( $tr[0] as $key = $value ){
preg_match_all($match,$value,$arr);
$result[] = $arr[1];
}
//输出测试,$result就是你要的数据,至于你要怎么输出显示格式,那就随心调就好了。
foreach( $result as $key = $value ){
echo implode("\t",$value);
echo "br";
}
exit;
在同一个网络上的 其他电脑 都可以登录这个网站?就偏偏 你这台电脑不行?
登录的时候 需要安装什么 软件来登录 还是 使用普通的浏览器 直接……
如果是 后者 那么 浏览器 工具 Internet 选项 删除--- 你彻底清除 浏览器 的历史记录、缓冲文件、cookie 等………… 然后再试试……
或者 看看 你这台电脑的设置与其他的有什么不同,是否 安装了 什么优化软件 把不该优化掉的东西 禁止了……仔细查看那些 被优化的项目 建议保留的 一定要保留……然后重启电脑看看 怎样的情况%
或者 你再换一个 浏览器 试试!(重新下载安装一个 新的浏览器)
头部加上超时控制,但对于很多服务器无效,因为服务器输出超时很多在服务器控制,所以建议用cmd脚本方式运行此程序:
?php
set_time_limit(0); //禁用脚本超时
// Create the socket and connect
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$connection = socket_connect($socket,'116。236。128。220', 14580);
// Write some test data to our socket
if(!socket_write($socket, "user NoCall pass -1 vers test 1.0 filter b/B* \r\n"))
{
echo("pWrite failed/p");
}
if(!file_exists('socket_log.html')){
file_put_contents('socket_log.html', 'script
var xx = setInterval(function(){ //每5秒刷新一次页面
window.location.reload();
}, 5000);
/script');
}
// Read any response from the socket
while($buffer = socket_read($socket, 64, PHP_NORMAL_READ))
{
echo json_encode($buffer); //转换为json数据输出
//记入文件
file_put_contents('socket_log.html', json_encode($buffer), FILE_APPEND);
}
echo("pDone Reading from Socket/p");
使用方法:用命令行方式运行此脚本
php script.php
脚本会一直运行到接收数据结束,并持续将收到的数据写入socket_log.html文件。
在浏览器打开socket_log.html页面,此页面会自动每5秒刷新一次,来显示最新的数据。
确保程序有权限创建及写入socket_log.html文件
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款