温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
  • 忘记密码?
登录注册×
获取短信验证码
其他方式登录
点击 登录注册 即表示同意 《亿速云用户服务条款》
  • 服务器
  • 数据库
  • 开发技术
  • 网络安全
  • 互联网科技
登 录 注册有礼
最新更新 网站标签 地图导航
产品
  • 首页 > 
  • 教程 > 
  • 开发技术 > 
  • 编程语言 > 
  • PHP如何实现抓取百度搜索结果并分析数据结构

PHP如何实现抓取百度搜索结果并分析数据结构

发布时间:2020-09-26 09:26:19 来源:亿速云 阅读:515 作者:小新 栏目: 编程语言

这篇文章主要介绍PHP如何实现抓取百度搜索结果并分析数据结构,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

PHP网络爬虫实践:抓取百度搜索结果,并分析数据结构

百度的搜索引擎有反爬虫机制,我先直接用guzzle试试水。代码如下:

<?php
/**
 * Created by Benjiemin
 * Date: 2020/3/5
 * Time: 14:58
 */
require ('./vendor/autoload.php');
use QL\QueryList;
//进入网页
$jar = new \GuzzleHttp\Cookie\CookieJar;
$client = new GuzzleHttp\Client(['cookies' => true]);
$ql = $client->request('GET', 'https://www.baidu.com', [
    'cookies' => $jar
]);
if($ql->getStatusCode()!=200){
    echo '网站状态不正常';die;
}
echo  $ql->getBody();

PHP如何实现抓取百度搜索结果并分析数据结构

百度直接拦截了,进了跳转页面,我试试加个浏览器头文件,再试试。

修改后的header如下:

$ql = $client->request('GET', 'https://www.baidu.com', [
    'cookies' => $jar,
    'headers' => [
    'Accept-Encoding' => 'gzip, deflate, br',
    'Accept'     => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
    'Accept-Language'      => 'zh-CN,zh;q=0.9,en;q=0.8',
    'Cache-Control'      => 'no-cache',
    'Connection'      => 'keep-alive',
    'User-Agent'      => 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36',
]
]);

我测试了下,网站打开了。

PHP如何实现抓取百度搜索结果并分析数据结构

我们继续,输入关键词,并搜索,结果发现被安全拦截了,所以我感觉直接用GuzzleHttp搞不动,于是我继续我的神器:jaeger/querylist和jaeger/querylist-puppeteer。

安装步骤:

1.安装依赖

在这之前,要先启用php的proc_open函数,否则无法安装完整

composer install jaeger/querylist
composer install jaeger/querylist-puppeteer

2.安装nodejs

yum install nodejs

3.安装npm

4.安装@nesk/puphpeteer

npm install @nesk/puphpeteer

5.PHP启用proc_open

代码如下:

<?php
/**
 * Created by Benjiemin
 * Date: 2020/3/5
 * Time: 14:58
 */
require ('./vendor/autoload.php');
use QL\QueryList;
use QL\Ext\Chrome;
$ql = QueryList::getInstance();
// 注册插件,默认注册的方法名为: chrome
$ql->use(Chrome::class);
 $ql->chrome(function ($page,$browser) {
    $page->goto('https://www.baidu.com');
    // 这里故意设置一个很长的延长时间,让你可以看到chrome浏览器的启动
    sleep(3);
    //输入关键词
    $wd = '简庆旺博客';
    $page->type("input[id='kw']",$wd);
    sleep(1);
    //点击搜索
    $page->click("input[type='submit']");
    //等待搜索结果
    sleep(3);
    //获取结果
    $html = $page->content();
    //用jquery选择器抽取结果
    $rules = array(
        'title'=>['#content_left h4 a','text'],//标题
        'url'=>['#content_left h4 a','href'],//跳转网址
        'description'=>['div .c-abstract','text'],//描述
    );
    $ql = QueryList::html($html);
    $rt = $ql->rules($rules)->query()->getData();
    //如果有需要,可以把$rt入库,以及做其他操作
    sleep(10);
    $browser->close();
    // 返回值一定要是页面的HTML内容
    return $html;
},[
    'headless' => false, // 启动可视化Chrome浏览器,方便调试
    'devtools' => false, // 打开浏览器的开发者工具
])->find('title')->text();

$rt是我的结果集合,打印下,如下

PHP如何实现抓取百度搜索结果并分析数据结构

PHP如何实现抓取百度搜索结果并分析数据结构

以上是PHP如何实现抓取百度搜索结果并分析数据结构的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节
推荐阅读:
  1. js实现百度淘宝搜索功能
  2. JS如何实现百度搜索功能

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php 如何实现 百度搜
  • 上一篇新闻:
    香港虚拟主机一年需要多少钱
  • 下一篇新闻:
    Bootstarp 基础教程之表单部分实例代码

猜你喜欢

  • flume怎么查看日志记录
  • log4j日志缺失的原因有哪些
  • idea如何调试jsp页面
  • jmap怎么查看线程运行状态
  • Spring中autowired的作用是什么
  • Java中system.getproperty的用法是什么
  • flume怎么实时收集日志
  • idea无法创建jsp文件怎么解决
  • jmap内存泄漏的原因怎么分析
  • Spring中autowired的用法是什么
最新资讯
  • 如何使用Rocky Linux的命令行工具进行内存和CPU性能监控
  • Rocky Linux支持哪些类型的虚拟硬件
  • 如何在Rocky Linux上安装和配置Jenkins CI/CD工具
  • Rocky Linux的默认桌面环境如何自定义
  • 如何为Rocky Linux配置和启用自动系统更新
  • Rocky Linux的电源管理工具有哪些如何使用
  • 如何在Rocky Linux上安装和配置WebDAV服务器
  • Rocky Linux的图形化桌面环境支持哪些主题和图标集
  • 如何配置Rocky Linux以支持多语言环境
  • Rocky Linux的默认文件搜索工具是什么如何使用
相关推荐
  • 如何基于JavaScript实现百度搜索框效果
  • .net怎么搜索查询并实现分页
  • 使用PHP怎么实现远程抓取网站图片并保存功能
  • 使用PHP怎么对百度阅读进行抓取
  • PHP如何获取网站百度搜索和搜狗搜索收录量
  • PHP如何抓取及分析网页
  • PHP怎么实现批量抓取远程网页图片并保存到本地
  • php如何实现抓取百度搜索某地天气数据
  • 如何用Python爬取百度搜索结果并保存
  • Python中Scrapy如何抓取并分析天气数据

相关标签

php趣味编程 thinkphp php环境搭建 phpldap php7.2 ​php php表单 php参数 php探针 phpweb phpbb php-cli php5ts.dll phpcms网站 thinkphp3.2 php解析url .php mixphp phpword phpems
AI

民权资讯网杉杉来了分集剧情好搜seo方案做烧烤起什么名字好梦到妹妹结婚周公解梦janicegriffith起名成语意义好的起名根据男孩子带金字旁起名大全家政公司起名字免费电脑右下角的小喇叭不见了女房男客竞价营销推广平台免费摇卦周易免费封面制作网站属牛可以用赫字起名吗易经算命准吗红岩600字读后感好网站设计名字比划起名SEO原创文章代写暴躁的爸爸作文浪漫天堂电影体坛之篮球教父印尼空难为什么要做seo戴志康康熙字典女孩起名周易义疏食品店起什么名字啊?思考致富少年生前被连续抽血16次?多部门介入两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”淀粉肠小王子日销售额涨超10倍高中生被打伤下体休学 邯郸通报单亲妈妈陷入热恋 14岁儿子报警何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言张家界的山上“长”满了韩国人?男孩8年未见母亲被告知被遗忘中国拥有亿元资产的家庭达13.3万户19岁小伙救下5人后溺亡 多方发声315晚会后胖东来又人满为患了张立群任西安交通大学校长“重生之我在北大当嫡校长”男子被猫抓伤后确诊“猫抓病”测试车高速逃费 小米:已补缴周杰伦一审败诉网易网友洛杉矶偶遇贾玲今日春分倪萍分享减重40斤方法七年后宇文玥被薅头发捞上岸许家印被限制高消费萧美琴窜访捷克 外交部回应联合利华开始重组专访95后高颜值猪保姆胖东来员工每周单休无小长假男子被流浪猫绊倒 投喂者赔24万小米汽车超级工厂正式揭幕黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发当地回应沈阳致3死车祸车主疑毒驾恒大被罚41.75亿到底怎么缴妈妈回应孩子在校撞护栏坠楼外国人感慨凌晨的中国很安全杨倩无缘巴黎奥运校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变王树国卸任西安交大校长 师生送别手机成瘾是影响睡眠质量重要因素国产伟哥去年销售近13亿阿根廷将发行1万与2万面值的纸币兔狲“狲大娘”因病死亡遭遇山火的松茸之乡“开封王婆”爆火:促成四五十对奥巴马现身唐宁街 黑色着装引猜测考生莫言也上北大硕士复试名单了德国打算提及普京时仅用姓名天水麻辣烫把捣辣椒大爷累坏了

民权资讯网 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化