PHP使用curl制作简易百度搜索


Posted in PHP onNovember 03, 2016

这几天研究了一下php中的curl类库,做了一个简单的百度搜索,先上代码

<div style="width:200px;height:100px;">
 <div>百度搜索</div>
 <form action="" method="get">
  <input type="text" name="key">
  <input type="submit" value="搜索">
 </form>
</div>
<?php
$k = '';
$k = !empty($_GET['key'])?$_GET['key']:'';
session_start();
$_SESSION['key'] = $k;

$curl = curl_init(); 
// 设置你需要抓取的URL 

for($i = 0;$i<2;$i++){
curl_setopt($curl, CURLOPT_URL, "http://www.baidu.com/s?wd={$_SESSION['key']}&pn={$i}"); 
// 设置header 
curl_setopt($curl, CURLOPT_HEADER, 1); 
// 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
// 运行cURL,请求网页 
$data = curl_exec($curl); 

$pre = '/<h3 class="t"><a.*?href = "(.*?)".*?target="_blank".*?>(.*?)<\/a><\/h3>/s';
preg_match_all($pre,$data,$match);

foreach ($match[1] as $k => $v) {
?> 
<div style="font-size:20px;color:red;">
 <a href="<?php echo $v;?>" target="_blank"><?php echo strip_tags($match[2][$k]);?></a>
</div>
<?php
}
}

curl_close($curl);


?>

经过分析百度的搜索时的url发现有一个规律

https://www.baidu.com/s?wd=搜索的关键字

但是我发现使用https协议后不能够获得百度上的数据于是改为http://www.baidu.com?wd=搜索的关键字就可以啦!!

效果图如下:

PHP使用curl制作简易百度搜索

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
php数据库连接
Oct 09 PHP
PHP分页函数代码(简单实用型)
Dec 02 PHP
PHP登录环节防止sql注入的方法浅析
Jun 30 PHP
php实现向javascript传递数组的方法
Jul 27 PHP
WordPress中创建用户角色的相关PHP函数使用详解
Dec 25 PHP
详解php用curl调用接口方法,get和post两种方式
Jan 13 PHP
YII框架批量插入数据的方法
Mar 18 PHP
Mac系统下安装PHP Xdebug
Mar 30 PHP
php框架CodeIgniter主从数据库配置方法分析
May 25 PHP
PHP生成短网址的思路以及实现方法的详解
Mar 25 PHP
php命名空间设计思想、用法与缺点分析
Jul 17 PHP
PHP实现cookie跨域session共享的方法分析
Aug 23 PHP
php 防止表单重复提交两种实现方法
Nov 03 #PHP
PHP HTTP 认证实例详解
Nov 03 #PHP
php将print_r处理后的数据还原为原始数组的解决方法
Nov 02 #PHP
php实现HTML实体编号与非ASCII字符串相互转换类实例
Nov 02 #PHP
php 使用redis锁限制并发访问类示例
Nov 02 #PHP
Android AsyncTack 异步任务实例详解
Nov 02 #PHP
php array_pop 删除数组最后一个元素实例
Nov 02 #PHP
You might like
PHP使用glob函数遍历目录或文件夹的方法
2014/12/16 PHP
php实现留言板功能
2017/03/05 PHP
thinkphp框架使用JWTtoken的方法详解
2019/10/10 PHP
一步一步制作jquery插件Tabs实现过程
2010/07/06 Javascript
jQuery获取文本节点之 text()/val()/html() 方法区别
2011/03/01 Javascript
由JavaScript中call()方法引发的对面向对象继承机制call的思考
2011/09/12 Javascript
js改变文章字体大小的实例代码
2013/11/27 Javascript
javascript实现禁止复制网页内容汇总
2015/12/30 Javascript
Javascript中的几种继承方式对比分析
2016/03/22 Javascript
jQuery遍历json的方法(推荐)
2016/06/12 Javascript
js改变css样式的三种方法推荐
2016/06/28 Javascript
网页中右键功能的实现方法之contextMenu的使用
2017/02/20 Javascript
Vue+Element使用富文本编辑器的示例代码
2017/08/14 Javascript
vue实现nav导航栏的方法
2017/12/13 Javascript
vue项目base64字符串转图片的实现代码
2018/07/13 Javascript
详解vue使用vue-layer-mobile组件实现toast,loading效果
2018/08/31 Javascript
微信小程序bindinput与bindsubmit的区别实例分析
2019/04/17 Javascript
[04:56]经典回顾:前Ehome 与 前LGD
2015/02/26 DOTA
Python读取一个目录下所有目录和文件的方法
2016/07/15 Python
Python新手们容易犯的几个错误总结
2017/04/01 Python
Python实现桶排序与快速排序算法结合应用示例
2017/11/22 Python
Python实现二维曲线拟合的方法
2018/12/29 Python
12个Python程序员面试必备问题与答案(小结)
2019/06/24 Python
Python 的字典(Dict)是如何存储的
2019/07/05 Python
Python学习笔记之错误和异常及访问错误消息详解
2019/08/08 Python
浅谈matplotlib中FigureCanvasXAgg的用法
2020/06/16 Python
matplotlib基础绘图命令之errorbar的使用
2020/08/13 Python
亚洲最大的眼镜批发商和零售商之一:Glasseslit
2018/10/08 全球购物
一些高难度的SQL面试题
2016/11/29 面试题
简历中个人求职的自我评价模板
2013/11/29 职场文书
应届毕业生求职信范文
2014/07/07 职场文书
兽医医药专业求职信
2014/07/27 职场文书
2014小学一年级班主任工作总结
2014/12/05 职场文书
技术负责人岗位职责
2015/02/10 职场文书
推普标语口号大全
2015/12/26 职场文书
redis的list数据类型相关命令介绍及使用
2022/01/18 Redis