- 67浏览
- 2023-08-01
<?php
namespace app\index\controller;
use think\Controller;
use think\Db;
class Weibo extends Controller
{
public function index()
{
// 设置请求头信息
$headers = array(
'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36',
'Referer: https://weibo.com/',
'Cookie: your_cookie_here'
);
// 发送请求获取热搜榜列表
$url = 'https://s.weibo.com/top/summary?cate=realtimehot';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
curl_close($ch);
// 解析HTML获取热搜榜列表
$pattern = '/<td class="td-02">.*?<a.*?>(.*?)<\/a>.*?<\/td>.*?<td class="td-03">.*?<span>(.*?)<\/span>.*?<\/td>/s';
preg_match_all($pattern, $result, $matches);
// 将热搜榜列表存入数据库
$data = array();
foreach ($matches[1] as $key => $value) {
$data[] = array(
'title' => $value,
'hot' => $matches[2][$key]
);
}
Db::name('weibo_hot')->insertAll($data);
// 输出结果
echo '采集成功!';
}
}
请注意,此代码中的“your_cookie_here”需要替换为您自己的微博登录cookie。此外,您还需要在tp5.0中创建一个名为“weibo_hot”的数据表,用于存储热搜榜列表数据。
版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、本文由会员转载自互联网,如果您是文章原创作者,请联系本站注明您的版权信息。