Python 大神 kennethreitz 又搞事了

Python 程序員,特別是作爬蟲的同窗都知道 HTTP 請求庫 Requests,Requests 完美體現了 「for Humans」 這個詞要表達的意思。css

它的做者是高顏值的攝影愛好者 kennethreitz ,kennethreitz 寫過不少的庫, 除了 Requests 、還有 pipenv,一個更好的集成了包管理和環境管理的工具。日期時間庫 maya 等等。html

這兩天他又搞出一個新項目叫 Requests-HTML,HTML Parsing for Humans 連接:https://github.com/kennethreitz/requests-html ,顧名思義,它是用於解析 HTML 文檔的。短短兩天項目的 Star 已經超過3000python

之前咱們寫爬蟲,解析 HTML 頁面一般會選擇 BeautifulSoup 或者是 lxml 庫,雖然 BeautifulSoup 的 API 比較友好,可是它的解析性能低下,而 lxml 使用 xpath 語法,解析速度快,可是代碼沒什麼可讀性,如今 kennethreitz 搞出來的這個 html 解析庫繼承了 requests 庫的優良傳統 —- for humans。git

咱們知道 requests 只負責網絡請求,但不對響應結果進行解析,你能夠把 requests-html 理解爲能夠解析 html 文檔的 requsts 庫。程序員

Requests-HTML 的代碼量其實很是少,目前不到 200 行,都是基於現有的框架進行二次封裝,使得開發者使用的時候更方便調用。它依賴於 PyQuery、Requests、lxml 等庫。github

安裝

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轉換爲markdown文本markdown

# 將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)session

博客: foofish.net
公衆號:Python之禪app

Python之禪
相關文章
相關標籤/搜索