增加全网搜音乐资源 方法source5
This commit is contained in:
@@ -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
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user