Программисты Python, особенно рептилии, студенты знают репозиторий HTTP-запросов Запросы, Запросы идеальное воплощение смысла выражения «для людей» слова.
Его автором является ценный энтузиаст фотографии kennethreitz, kennethreitz написал множество библиотек, помимо Requests, и pipenv, инструмент, который лучше интегрирует управление пакетами и управление средой. библиотека datetime Maya и т. д.
За последние два дня он придумал новый проект под названием Requests-HTML, ссылка HTML Parsing for Humans: https://github.com/kennethreitz/requests-html, как следует из названия, он используется для анализа HTML. документы. Звезда проекта перевалила за 3000 всего за два дня
В прошлом, когда мы писали поисковые роботы и анализировали HTML-страницы, мы обычно выбирали библиотеку BeautifulSoup или lxml.Хотя API BeautifulSoup относительно дружелюбен, его производительность синтаксического анализа низкая, а lxml использует синтаксис xpath, который имеет высокую скорость синтаксического анализа, но код Библиотека парсинга html, которую мы придумали, наследует прекрасную традицию библиотеки запросов — для людей.
Мы знаем, что запросы отвечают только за сетевые запросы, но не анализируют результаты ответов.Вы можете понимать запросы-html как библиотеку запросов, которая может анализировать html-документы.
Объем кода в Requests-HTML на самом деле очень мал, в настоящее время менее 200 строк, и он основан на существующем фреймворке для вторичной инкапсуляции, что упрощает его использование разработчиками. Он опирается на такие библиотеки, как PyQuery, Requests, lxml и т. д.
Установить
pip install requests-html
инструкции
>>> from requests_html import session
# 返回一个Response对象
>>> r = session.get('https://python.org/')
# 获取所有链接
>>> r.html.links
{'/users/membership/', '/about/gettingstarted/'}
# 使用css选择器的方式获取某个元素
>>> about = r.html.find('#about')[0]
>>> print(about.text)
About
Applications
Quotes
Getting Started
Help
Python Brochure
Кроме того, есть очень привлекательная функция, заключающаяся в том, что он может конвертировать html в текст уценки.
# 将html转换为Markdown文本
>>> print(about.markdown)
* [About](/about/)
* [Applications](/about/apps/)
* [Quotes](/about/quotes/)
* [Getting Started](/about/gettingstarted/)
* [Help](/about/help/)
* [Python Brochure](http://brochure.getpython.info/)
Дополнительные методы использования см. в документации: https://github.com/kennethreitz/requests-html.
Итак, в чем польза метаклассов? Нам действительно нужны метаклассы? Пожалуйста, обратите внимание на следующее объяснение (оставьте вам больше времени на переваривание, O(∩_∩)O)
Блог:foofish.net
Публичный номер: Zen of Python