2017-02-22 28 views
-2

Я хочу разобрать html-файл как объект json в колбе. Предположим, у меня есть форма, где я хочу импортировать файлы с расширением html. Выход должен быть в формате JSON-файл, который содержит будет как в ниже:Python flask html parse to json

{ 
    "a":[ 
     "https://www.google.hu/", 
     "https://www.facebook.com/" 
    ] 
} 

Может кто-то пожалуйста, поделитесь любой путеводитель или anyting или совет для этого. Спасибо за чтение.

ответ

0

Похоже, у вас есть несколько проблем здесь. Позвольте мне ответить на вопрос JSON. Вам нужно импортировать json из библиотеки флагов и использовать метод json.dumps() для кодирования словарного объекта в строку JSON, подходящую для возврата в ответ. Пожалуйста, проверьте пример кода ниже.

from flask import Flask, json 

app = Flask('0.0.0.0', port=8080, debug=True) 

@app.route('/url', methods=['POST']) 
def html_json(): 
    data = {"a": ["https://www.google.hu/", 
        "https://www.facebook.com/" 
       ] 
    } 
    return json.dumps(data), 200 

http://flask.pocoo.org/docs/0.12/patterns/fileuploads/ должен помочь с загрузкой файлов.

Beautiful Soup

BeautifulSoup библиотека Python, которые могут быть использованы для анализа HTML. Это даст вам структурированный набор элементов, которые вы можете перебрать и преобразовать в JSON.

from BeautifulSoup import BeautifulSoup 
html = "html file as string here" 
soup = BeautifulSoup(html) 

Затем вы можете перебирать каждый тег в HTML.

links = soup.find_all('a',href=True) 

Вот вопрос, где кто-то преобразует HTML таблицу в формате JSON (гораздо проще, чем целую страницу): Convert a HTML Table to JSON

я нашел сообщение в блоге, который мог бы помочь. Автор создал HTML для JSON Parser: http://www.xavierdupre.fr/blog/2013-10-27_nojs.html

+0

Да актуален более, чем. И я застрял сейчас.). Большое вам спасибо за долю. –

+0

Увы, если я помог, если вы застряли, скажите, на что вы застряли, чтобы я мог вам помочь. –

+0

Моя эмблема здесь Я использовал формат json, который я привел в качестве примера. Как я могу расширить все html-элементы как json. это как, например, будет похоже на текст объекта json, и все внутри тега будет в качестве элементов. –