From 5276758a967edfd41c8178de3463ad9c24133133 Mon Sep 17 00:00:00 2001 From: Alone <675061370@qq.com> Date: Tue, 24 Dec 2024 09:43:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=85=A8=E7=BD=91=E6=90=9C?= =?UTF-8?q?=E9=9F=B3=E4=B9=90=E8=B5=84=E6=BA=90=20=E6=96=B9=E6=B3=95source?= =?UTF-8?q?5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/controller/Other.php | 14 ++++++++ app/common.php | 65 ++++++++++++++++++++++++++++++++++-- 2 files changed, 77 insertions(+), 2 deletions(-) diff --git a/app/api/controller/Other.php b/app/api/controller/Other.php index 9e1b8f7..5dea9d9 100644 --- a/app/api/controller/Other.php +++ b/app/api/controller/Other.php @@ -116,6 +116,20 @@ class Other extends QfShop } } } + + // 处理第5个源 + if ($num_success < $num_total) { + foreach (source5($title) as $value) { + if ($num_success >= $num_total) { + break; // 有效结果数量已达到,则跳出循环 + } + // 如果 URL 不存在则新增 $value + if (!$this->urlExists($searchList, $value['url'])) { + $searchList[] = $value; + $this->processUrl($value, $num_success, $datas); + } + } + } // 处理第3个源 diff --git a/app/common.php b/app/common.php index e92d045..43e25b3 100644 --- a/app/common.php +++ b/app/common.php @@ -715,7 +715,7 @@ function getDom($url) curl_close($ch); $dom = new DOMDocument(); - @$dom->loadHTML($html); + @$dom->loadHTML('' . $html); return $dom; } @@ -966,7 +966,10 @@ function determineIsType($url) { } if ($parsedItem['title'] && $parsedItem['url']) { - $results[] = $parsedItem; + // $results[] = $parsedItem; + if (strpos($parsedItem['title'], $title) !== false || strpos($title, $parsedItem['title']) !== false) { + $results[] = $parsedItem; + } } if (count($results) >= 3) { @@ -976,4 +979,62 @@ function determineIsType($url) { return $results; } + + + /** + * 网络资源搜索源五----音乐资源 + * @return array + */ +function source5($title) +{ + $results = []; + $title = str_replace("音乐", "", $title); + $url = 'https://www.yym4.com/search/'.urlencode($title); + $dom = getDom($url); + $finder = new DomXPath($dom); + + // 使用 XPath 查询选择具有特定类名的元素 + $nodes =$finder->query('//span[@class="search_result_item_dl_btn"]/a[@class="a-no-white"]'); + // 检查是否有匹配的节点 + if ($nodes->length > 0) { + // 获取第一个匹配的链接的 href 属性 + $firstLink = $nodes->item(0)->getAttribute('href'); + // echo "第一个链接: " . $firstLink; + $detailUrl = 'https://www.yym4.com'.$firstLink; + $dom = getDom($detailUrl); + $finder = new DomXPath($dom); + // 使用 XPath 获取网盘链接(详情页中的链接) + $panLinkNodes = $finder->query('//div[@class="detail_dl_btn"]/a[starts-with(@href, "https://pan.quark.cn")]'); + // 获取名称 + $nameNode = $finder->query('//div[@class="detail_info_detail_name"]'); + + $parsedItem = [ + 'title' => '', + 'url' => '' + ]; + + // 检查是否找到网盘链接 + if ($panLinkNodes->length > 0) { + // 获取第一个网盘链接的 href 属性 + $panLink = $panLinkNodes->item(0)->getAttribute('href'); + $parsedItem['url'] = $panLink; + } + + + if ($nameNode->length > 0) { + // 获取名称 + $name = $nameNode->item(0)->nodeValue; + $parsedItem['title'] = '「音乐」'.$name; + } + + if ($parsedItem['title'] && $parsedItem['url']) { + if (strpos($parsedItem['title'], $title) !== false || strpos($title, $parsedItem['title']) !== false) { + $results[] = $parsedItem; + } + } + + } + + return $results; +} \ No newline at end of file