Разбор HTML для быстрого получения JSON

Я новичок в Swift и пытаюсь получить данные JSON из HTML, который я захватил. Я получаю HTML-код с веб-сайта, и во всем результате есть одна строка с данными. Настройка как: var obj = *JSON data*

Как я могу проанализировать результаты строки, чтобы получить только эту строку и преобразовать данные (правая часть знака равенства) в JSON?

Вот мой код для получения данных (testURL — это URL-адрес веб-сайта):

if let url = testURL {
    do {
          let contents = try String(contentsOf: url)
          print(contents)
       } catch {
          // contents could not be loaded
       }
    } else {
       // the URL was bad!
 }

Где HTML-код?

Mojtaba Hosseini 27.05.2019 01:45
Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
1
1
1 223
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать этот модуль СвифтСуп для разбора HTML.

Этот блок кода перебирает теги, такие как сценарий, и получает свои атрибуты, такие как источник.

if let url = testURL {
    do {
        let contents = try String(contentsOf: url)
        print(contents)
        do {
            let doc: Document = try SwiftSoup.parse(contents)
            for item in try doc.select("script") {
                let json = try item.attr("src")
                print(json)
            }
        } catch Exception.Error(let type, let message) {
            print(message)
        } catch {
            print("error")
        }
    } catch {
        // contents could not be loaded
    }
} else {
    // the URL was bad!
}

Замените сценарий тегом json и источник атрибутом, содержащим json.

Не забудьте добавить импорт SwiftSoup

Надеюсь, вы получите желаемый результат.

Здравствуйте, я добавил SwiftSoup и использовал ваш код, но когда я заменил «src» на obj, имя переменной, указывающее на JSON, он просто распечатывает весь полученный HTML (от print(contents)). Но переменная json ничего не печатает. Что вы подразумеваете под тегом JSON? Я также просмотрел документы, прежде чем писать это, и не смог найти/попробовать ничего, что помогло бы. То, что я хочу, находится внутри <script>. Но результат HTML имеет несколько <script>

fphelp 27.05.2019 08:07

Дайте мне ваш html или URL, чтобы получить html

Muhammad Maaz Ul Haq 27.05.2019 16:26

Другие вопросы по теме