#javascript #html #node.js #axios
Вопрос:
<noscript><strong>Javascript is enabled in your web browser on a specific site while implementing web crawling. If you disable JavaScript, this text will change.</strong></noscript>
Я проверил, что был добавлен тот же тег. Для сайта, включающего этот тег, даже если вы запросите URL-адрес сайта с помощью axios, значение html не будет введено полностью. Как я могу это решить? (Я использовал Google Translate. Прости.)
https://vibe.naver.com/chart/total <= this site
Комментарии:
1. Если вам нужен веб-поиск для сайта с выполненным JavaScript, вам нужно что-то вроде github.com/puppeteer/puppeteer
2. В переводе с помощью Google Translate
<noscript>
теги сайта гласят:"The screen cannot be displayed because JavaScript is disabled. Please enable JavaScript in your browser settings and try again"
. Это обычное поведение SPA (одностраничного приложения), когда React/Vue/Angular/Svelete (в данном случае Vue, основанный на исходном коде js) сообщает клиенту, что для просмотра содержимого страницы необходимо включить JavaScript, поскольку JavaScript создает текст. Вам понадобится что-то вроде кукловода, упомянутого выше, если вы хотите поиграть в веб-игру
Ответ №1:
На самом деле я не знаю, какая у вас проблема, но этот код должен работать
const axios = require('axios');
axios.get("https://vibe.naver.com/chart/total").then(html => {
console.log(html.data)
})
Способ с использованием выборки узлов
const fetch = require("node-fetch");
fetch("https://vibe.naver.com/chart/total").then(result => result.text()).then(result => {
console.log(result)
})
Если вы не получаете весь сайт целиком, это могут быть меры по борьбе с ботами
Комментарии:
1. Это связано с тем, что веб-сайт использует платформу одностраничного приложения (Vue), для правильного использования которой требуется JavaScript, поскольку JS управляет отображаемым текстом. Просто получение необработанного HTML-кода ничего не даст, вам нужно будет использовать что-то вроде pupeteer
Ответ №2:
Я не очень уверен, какой язык программирования вы используете, и используете ли вы его вообще.
Но вы не сможете получить какой-либо внутренний исходный код от Naver; вы увидите только интерфейсные html-коды с кучей ссылок на внутренние исходные коды.
Это небольшая сумма, которую я получил от проверки HTML: (Все это одна строка)
<!DOCTYPE html><html lang="ko"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no"><meta name="format-detection" content="telephone=no"><meta name="description" content="좋아하는 음악은 물론, 좋아할 음악까지 들려주는 취향 저격 뮤직 서비스"><meta name="apple-itunes-app" content="app-id=1338631589"><meta property="og:type" content="website"><meta property="og:image" content="https://music-phinf.pstatic.net/20201019_118/16031004163365Jexk_JPEG/about.jpg"><meta property="og:title" content="NAVER VIBE(바이브)"><meta property="og:description" content="#나만을 위한 음악이 듣고 싶을 땐 #내돈내듣 VIBE."><meta property="og:url" content="https://vibe.naver.com"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:image" content="https://music-phinf.pstatic.net/20201019_118/16031004163365Jexk_JPEG/about.jpg"><meta name="twitter:title" content="NAVER VIBE(바이브)"><meta name="twitter:site" content="NAVER VIBE(바이브)"><meta name="twitter:creator" content="VIBE"><meta name="twitter:description" content="#나만을 위한 음악이 듣고 싶을 땐 #내돈내듣 VIBE."><link rel="shortcut icon" href="/favicon.ico" type="image/x-icon"><link rel="icon" href="/favicon.ico" type="image/x-icon"><link rel="apple-touch-icon" href="/images/icon/icon_120x120.png"><link rel="apple-touch-icon" sizes="120x120" href="/images/icon/icon_120x120.png"><link rel="apple-touch-icon" sizes="152x152" href="/images/icon/icon_152x152.png"><link rel="apple-touch-icon" sizes="167x167" href="/images/icon/icon_167x167.png"><link rel="apple-touch-icon" sizes="180x180" href="/images/icon/icon_180x180.png"><title>VIBE (바이브)</title><link href="/20210611235311_resources/css/common.314db81d.css" rel="prefetch"><link href="/20210611235311_resources/js/common.435f4ddf.js" rel="prefetch"><link href="/20210611235311_resources/css/app.f381a573.css" rel="preload" as="style"><link href="/20210611235311_resources/css/chunk-vendors.598bb52f.css" rel="preload" as="style"><link href="/20210611235311_resources/js/app.54f33238.js" rel="preload" as="script"><link href="/20210611235311_resources/js/chunk-vendors.b833ef5d.js" rel="preload" as="script"><link href="/20210611235311_resources/css/chunk-vendors.598bb52f.css" rel="stylesheet"><link href="/20210611235311_resources/css/app.f381a573.css" rel="stylesheet"><script type="text/javascript" src="https://gc.kis.v2.scr.kaspersky-labs.com/FD126C42-EBFA-4E12-B309-BB3FDD723AC1/main.js?attr=6Lte6dwVvrAUmIXAmrO3pKxbbcRLcOyA1czuw93D8LByqZTbj1qR4t2QiZ9_JGMjj_RlN8QK-X9i0K0eVweFfA" charset="UTF-8"></script><link rel="stylesheet" crossorigin="anonymous" href="https://gc.kis.v2.scr.kaspersky-labs.com/E3E8934C-235A-4B0E-825A-35A08381A191/abn/main.css?attr=aHR0cHM6Ly92aWJlLm5hdmVyLmNvbS9jaGFydC90b3RhbA"/></head><body><noscript><strong>자바스크립트가 비활성화 되어있어 화면을 표시할 수 없습니다. 브라우저 설정에서 자바스크립트를 활성화 후 다시 시도해 주세요.</strong></noscript><div id="app" class="app"></div><script src="/20210611235311_resources/js/chunk-vendors.b833ef5d.js"></script><script src="/20210611235311_resources/js/app.54f33238.js"></script></body></html>
Комментарии:
1. я использую nodejs.. Тогда невозможно ли импортировать html-данные из vibe.naver.com/chart/total с аксиосом?
2. Это язык программирования, с которым я незнаком, извините.