PHP一个简单的无需刷新爬虫
时间:2022-07-27
本文章向大家介绍PHP一个简单的无需刷新爬虫,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
由于只是一个小示例,所以过程化简单写了,小菜随便参考,大神大可点解
<?php
//设置最大执行时间
set_time_limit(0);
function getHtml($url){
// 1. 初始化
$ch = curl_init();
// 2. 设置选项,包括URL
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_HEADER,0);
// 3. 执行并获取HTML文档内容
$output = curl_exec($ch);
if($output === FALSE ){
$output = '';
}
// 4. 释放curl句柄
curl_close($ch);
return $output;
}
function getPageData($url){
// 获取整个网页内容
$html = getHtml($url);
// 初步获取主块内容
preg_match("/教程列表.*教程列表/s",$html,$body_html);
// 返回数据
$data = array();
//判断是否存在要获取的内容
if(count($body_html)){
// 获取页面指定信息
preg_match_all('/<a class="avatar".*user_id="(S*)" href="(S*)" rel="external nofollow" /',$body_html[0],$info_1);
preg_match_all('/<a href="(.*)" rel="external nofollow" .*title="(.*)"/',$body_html[0],$info_2);
$info = array_merge($info_1,$info_2);
//组合的信息
for($index=0; $index<count($info[0]); $index++){
//以文章信息作为key存数组,以及覆盖旧数据
$data[$info[4][$index]] = array(
'user_id' = $info[1][$index],
'user_home' = $info[2][$index],
'a_url' = $info[4][$index],
'a_title' = $info[5][$index],
);
}
}
return $data;
}
header("Content-type: text/html; charset=utf-8");
echo '<pre ';
// 初始化数据
$page_no = 1;
$data_all = array();
// 分页获取数据
do{
$url = 'http://www.thinkphp.cn/code/examples/p/' . $page_no;
$data = getPageData($url);
$data_all += $data;
$page_no ++;
}while ($page_no <= 10); //当前只获取10页,如果要全部获取则把条件换成$data或!empty($data)
var_dump($data_all);
?
接下的入表库当然就不写了,那些更小意思了~就此别过吧~
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对ZaLou.Cn的支持。如果你想了解更多相关内容请查看下面相关链接
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- php基础编程-php连接mysql数据库-mysqli的简单使用
- (数据科学学习手札91)在Python中妥善使用进度条
- MySQL 数据库表分区.
- RMI 远程方法调用
- MyBatis版本升级导致OffsetDateTime入参解析异常问题复盘
- 我靠(call) ,我的未来(Future)在哪里???
- Flutter中ListView加载图片数据的优化
- Python 实现随机森林预测宽带客户离网(附源数据与代码)
- 嘿,你知道新冠疫情现在什么样了吗?
- 关于双目立体视觉的三大基本算法及发展现状的总结
- 权限维持之打造不一样的映像劫持后门
- SM3加密算法开源项目推荐
- 图片压缩原理
- 使用 Vue 3.0,你可能不再需要Vuex了
- ffmpeg视频处理神器学习基础笔记