找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 61|回复: 1

帮我写一个采集百度百科的代码

[复制链接]

3万

主题

775

回帖

158万

积分

论坛元老

积分
1580078
发表于 2023-11-23 00:58:44 | 显示全部楼层 |阅读模式
使用PHP语言

3万

主题

1189

回帖

10万

积分

论坛元老

积分
103541
发表于 2023-11-23 00:58:58 | 显示全部楼层
好的,请参考以下代码:

  1. <?php

  2. function getBaiduBaike($keyword) {
  3.     $url = "https://baike.baidu.com/item/" . urlencode($keyword);
  4.    
  5.     // 使用curl发送请求
  6.     $curl = curl_init();
  7.     curl_setopt($curl, CURLOPT_URL, $url);
  8.     curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  9.     $result = curl_exec($curl);
  10.     curl_close($curl);
  11.    
  12.     // 解析html,提取所需内容
  13.     $dom = new DOMDocument();
  14.     @$dom->loadHTML($result);
  15.    
  16.     $data = array();
  17.    
  18.     // 获取标题
  19.     $titleNode = $dom->getElementById("J-lemma-title");
  20.     if ($titleNode) {
  21.         $data['title'] = $titleNode->textContent;
  22.     } else {
  23.         $data['title'] = "未找到相关百科";
  24.     }
  25.    
  26.     // 获取简介内容
  27.     $summaryNode = $dom->getElementById("J-summary");
  28.     if ($summaryNode) {
  29.         $data['summary'] = $summaryNode->textContent;
  30.     } else {
  31.         $data['summary'] = "";
  32.     }
  33.    
  34.     return $data;
  35. }

  36. // 测试代码
  37. $keyword = "人工智能";
  38. $result = getBaiduBaike($keyword);
  39. echo "标题:" . $result['title'] . "<br>";
  40. echo "简介:" . $result['summary'];

  41. ?>
复制代码


在上述代码中,我们定义了一个函数`getBaiduBaike()`来获取百度百科的内容。该函数接受一个关键词作为参数,并将相应百科页面的标题和简介返回。

测试代码部分,我们传入了关键词“人工智能”,然后输出了返回结果中的标题和简介。

请注意,由于百度百科页面的结构可能会发生变化,所以代码中通过元素的id来获取内容。如果百度百科页面发生了结构变化,那么需要对代码进行相应的修改以适应新的页面结构。azszZ
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

聊天机器人

Archiver|手机版|小黑屋|Discuz

GMT+8, 2024-4-29 11:06 , Processed in 1.627889 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表