卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章47291本站已运行31112

php 提取豆瓣全部演职员内容代码

豆瓣社区是一个集影视功能一体的网站,里面的资料非常丰富,今天我们就提取豆瓣影视演职员表内容。
下面是核心提取内容代码:
function processText($text) {  
    // 按照逗号分割文本  
    $parts = explode(',', $text);  
    $result = [];  
      
    foreach ($parts as $part) {  
        $part = trim($part); 
        // 使用正则表达式匹配中文字符  
        if (preg_match('/[\x{4e00}-\x{9fa5}]+/u', $part)) {  
            // 如果包含中文,进一步检查是否有空格  
            if (strpos($part, ' ') !== false) {  
                // 如果有空格,则只取空格前的中文内容  
                preg_match('|(.*) (.*)|iUs',$part,$res);
            $result[] = $res[1];
            } else {  
                // 如果没有空格,直接保留整个中文部分  
                $result[] = $part;  
            }  
        } else {  
            // 如果不包含中文,只保留英文部分并进行去重  
            $englishPart = explode(' ', $part);  
            $result[] = implode(" ", array_unique($englishPart)); 
        }  
    }  
      
    // 用逗号重新组合结果并返回  
    return implode(',', $result);  
}  
利用正则提取内容代码
$htmltmp2 = Curl_get('https://movie.douban.com/subject/'.$id.'/celebrities');
preg_match_all('|<h2>制片人 Producer</h2>(.*)</ul>|iUs',$htmltmp2,$zpr);
$zpr1 = $zpr[1][0];
preg_match_all('|<span class="name"><a href="(.*)" title="(.*)" class="name">(.*)</a></span>|iUs',$zpr1,$res);
$zpr = implode(',', $res[2]);
$zpr = processText($zpr);
这里只是提取一个内容,其他需要提取的可以自己在添加代码!
卓越飞翔博客
上一篇: PHP 函数的命名空间是否会影响执行顺序?
下一篇: 返回列表
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏