機械湯
Version 1.3.0
https://mechanicalsup.readthedocs.io/
用於自動與網站互動的 Python 函式庫。 MechanicalSoup 會自動儲存和發送 cookie、追蹤重定向、追蹤連結並提交表單。它不執行 JavaScript。
MechanicalSoup 由 M Hickford 創建,他是 Mechanize 庫的忠實用戶。不幸的是,Mechanize 直到 2019 年才與 Python 3 相容,其開發停滯了幾年。 MechanicalSoup 提供了類似的 API,基於 Python 巨頭 Requests(用於 HTTP 會話)和 BeautifulSoup(用於文件導航)建置。自 2017 年以來,這是一個由 @hemberger 和 @moy 等小團隊積極維護的專案。
PyPy3 也受支援(並進行了測試)。
從 PyPI 下載並安裝最新發布的版本:
pip 安裝 MechanicalSoup
從 GitHub 下載並安裝開發版本:
pip install git+https://github.com/MechanicalSoup/MechanicalSoup
從來源安裝(在目前工作目錄中安裝版本):
python setup.py 安裝
(在所有情況下,將--user
新增至install
命令以安裝在目前使用者的主目錄中。)
完整文件可在 https://mechanicalsoup.readthedocs.io/ 上找到。您可能想要直接跳到自動產生的 API 文件。
從 example/expl_qwant.py 中取得 Qwant 搜尋結果的程式碼:
"""使用 MechanicalSoup 從 Qwantsearch 引擎取得結果的範例。"""import reimport Mechanicalsoupimport htmlimport urllib.parse# 連接到 Qwantbrowser = Mechanicalsoup.StatefulBrowser(user_agent='MechanicalSoup'brow. .com/")# 填寫搜尋表單browser.select_form('#search-form')browser["q"] = "MechanicalSoup"browser.submit_selected()# 在browser.page顯示連結結果。select('.result a'):# Qwant 顯示重定向鏈接,而不是實際URL,因此從重定向鏈接中提取#實際URL:href = link.attrs['href']m = re.match(r"^ /redirect/[^ /]*/(.*)$", href)if m:href = urllib.parse.unquote(m.group(1))print(link.text, '->', href)
範例/中提供了更多範例。
有關更複雜表單(複選框、單選按鈕和文字區域)的範例,請閱讀tests/test_browser.py 和tests/test_form.py。
建置、測試和貢獻 MechanicalSoup 的說明:請參閱 CONTRIBUTING.rst。
閱讀常見問題。