用于自动与网站交互的python库
MechanicalSoup的Python项目详细描述
概述
用于自动与网站交互的python库。 mechanicalsoup自动存储和发送cookies,如下所示 重定向,并可以跟踪链接和提交表单。不是这样的 javascript。
mechanicalsoup是由M Hickford创建的,他是 Mechanize库。 不幸的是,机械化是incompatible with Python 3 until 2019及其发展 停滞了好几年。mechanicalsoup提供了一个类似的api,构建于python之上 巨人Requests(用于 http会话)和BeautifulSoup(用于文档 导航)。自2017年以来,这是一个由 团队包括@hemberger和@moy。
安装
pypy和pypy3也受支持(并进行了测试)。
从PyPI:
下载并安装最新版本pip install MechanicalSoup
从GitHub:
下载并安装开发版本pip install git+https://github.com/MechanicalSoup/MechanicalSoup
从源安装(在当前工作目录中安装版本):
python setup.py install
(在所有情况下,将--user添加到install命令 安装在当前用户的主目录中。)
文档
完整的文档可在 https://mechanicalsoup.readthedocs.io/。你可以直接跳到 这是automatically generated API documentation。
示例
从examples/expl_duck_duck_go.py,获取结果的代码 DuckDuckGo搜索:
"""Example usage of MechanicalSoup to get the results from DuckDuckGo."""importmechanicalsoup# Connect to duckduckgobrowser=mechanicalsoup.StatefulBrowser()browser.open("https://duckduckgo.com/")# Fill-in the search formbrowser.select_form('#search_form_homepage')browser["q"]="MechanicalSoup"browser.submit_selected()# Display the resultsforlinkinbrowser.get_current_page().select('a.result__a'):print(link.text,'->',link.attrs['href'])
更多示例可在examples/中找到。
例如,使用更复杂的表单(复选框、单选按钮和 文本区域),阅读tests/test_browser.py 以及tests/test_form.py。
常见问题
阅读FAQ。