hyung..sunbae.. i fixed naver

This commit is contained in:
2026-10-24 03:18:07 -04:00
parent ee0cecc32b
commit 3b3c759ce5
+73 -22
View File
@@ -261,9 +261,10 @@ class naver{
$filters = [
"nso" => "",
"page" => 2, // page 2 is repeat of page 1
"query" => $search,
"sm" => "tab_pge",
"where" => "web",
"ssc" => "tab.ur.all",
"start" => 1 // increment by number of results each time (16??)
];
@@ -304,13 +305,13 @@ class naver{
$this->fuckhtml->load($html);
$results =
$jsons =
preg_split(
'/entry\.bootstrap\(document\.getElementById\("[a-f0-9-r]+"\), ?/',
$html
);
if(count($results) !== 2){
if(count($jsons) <= 1){
// this is thrown when no results are found
@@ -342,32 +343,29 @@ class naver{
//throw new Exception("Failed to grep results entrypoint");
}
foreach($jsons as $json){
$json =
json_decode(
$this->fuckhtml
->extract_json(
$results[1]
$json
),
true
);
if(!isset($json["body"]["props"]["children"][0]["props"]["children"])){
if($json === null){
throw new Exception("Failed to access nested children");
}
foreach($json["body"]["props"]["children"][0]["props"]["children"] as $result){
if(
!isset($result["templateId"]) ||
$result["templateId"] != "webItem"
){
// should not happen
continue;
}
$result = $result["props"];
if(!isset($json["data"]["state"]["items"])){
//throw new Exception("Failed to access nested children");
continue;
}
foreach($json["data"]["state"]["items"] as $result){
// get sublinks
$sublinks = [];
@@ -429,12 +427,19 @@ class naver{
// get date
$time = null;
if(isset($result["bodyPrefixes"][0]["text"])){
if(isset($result["profile"]["createdDate"])){
$time = $result["profile"]["createdDate"];
}elseif(isset($result["sourceProfile"]["createdDate"])){
$time = $result["sourceProfile"]["createdDate"];
}
if($time !== null){
$date =
strtotime(
substr(
$result["bodyPrefixes"][0]["text"],
$time,
-1
)
);
@@ -442,13 +447,58 @@ class naver{
if($date !== false){
$time = $date;
}else{
$time = null;
}
}
// get title
if(isset($result["title"])){
$title = $result["title"];
}elseif(isset($result["questionTitle"])){
$title = $result["questionTitle"];
}else{
continue;
}
// get url
if(isset($result["titleHref"])){
$href = $result["titleHref"];
}elseif(isset($result["href"])){
$href = $result["href"];
}elseif(isset($result["answerHref"])){
$href = $result["answerHref"];
}else{
continue;
}
// get description
if(isset($result["bodyText"])){
$description = $result["bodyText"];
}elseif(isset($result["content"])){
$description = $result["content"];
}elseif(isset($result["questionContent"])){
$description = $result["questionContent"];
}else{
$description = null;
}
$out["web"][] = [
"title" => $this->decode_html($result["title"]),
"description" => $this->decode_html($result["bodyText"]),
"url" => $result["href"],
"title" => $this->decode_html($title),
"description" => $this->decode_html($description),
"url" => $href,
"date" => $time,
"type" => "web",
"thumb" => $thumb,
@@ -456,6 +506,7 @@ class naver{
"table" => $table
];
}
}
// get next page
$npt =