增加全网搜音乐资源 方法source5

This commit is contained in:
Alone
2024-12-24 09:43:30 +08:00
parent 73d0322d35
commit 5276758a96
2 changed files with 77 additions and 2 deletions
+14
View File
@@ -117,6 +117,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个源
if ($num_success < $num_total) {
+62 -1
View File
@@ -715,7 +715,7 @@ function getDom($url)
curl_close($ch);
$dom = new DOMDocument();
@$dom->loadHTML($html);
@$dom->loadHTML('<?xml encoding="UTF-8">' . $html);
return $dom;
}
@@ -966,8 +966,11 @@ function determineIsType($url) {
}
if ($parsedItem['title'] && $parsedItem['url']) {
// $results[] = $parsedItem;
if (strpos($parsedItem['title'], $title) !== false || strpos($title, $parsedItem['title']) !== false) {
$results[] = $parsedItem;
}
}
if (count($results) >= 3) {
break;
@@ -977,3 +980,61 @@ 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;
}