Что такое красивый метод, связанный с супом?

Я экспериментирую с http://robobrowser.readthedocs.org/en/latest/readme.html, новой библиотекой python, основанной на красивой библиотеке супов. Я пытаюсь проверить это, открыв html-страницу и вернув ее в приложение django, но не могу понять, как выполнить эту самую простую задачу. Мое приложение Django содержит:

def index(request):    

    p=str(request.POST.get('p', False)) # p='https://www.yahoo.com/'
    browser = RoboBrowser(history=True)
    browser.open(p)
    html = browser.find_all
    return HttpResponse(html)

когда я смотрю на выведенный HTML, я вижу:

<bound method BeautifulSoup.find_all of 
    <!DOCTYPE html>
    <html>
    ......................
        <head>
    ...............
        </body>
    </html>
>

Что такое красивый метод, связанный с супом? Как я могу получить прямой HTML?

2 ответа

Решение

Это объект метода, связанный с BeautifulSoup объект. Вы не называли это.

Это представление немного сбивает с толку, потому что repr() дерева разбора BeautifulSoup, которое представляет собой просто дерево, отображаемое в виде исходной строки HTML.

Чтобы добраться до базового дерева разбора BeautifulSoup, вы можете использовать; использование str() чтобы превратить это обратно в исходную строку:

html = str(browser.state.parsed)

Кроме того, вы все еще можете получить доступ к оригиналу requests объект ответа с:

browser.state.response

Это означает, что оригинальный загруженный HTML-файл находится как:

html = browser.state.response.content

BeautifulSoup — это пакет Python, используемый для синтаксического анализа документов HTML и XML. Он создает дерево синтаксического анализа для проанализированных страниц, которое можно использовать для очистки веб-страниц.

Существует множество методов Beautifulsoup, которые позволяют нам выполнять поиск по дереву синтаксического анализа. Если мы будем искать вне этого дерева, оно будет за пределами границ.

.next_sibling и .previous_sibling — это теги, которые используются для навигации между элементами страницы, находящимися на одном уровне дерева синтаксического анализа.

Ссылка

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