用于自动与网站交互的python库

MechanicalSoup的Python项目详细描述


MechanicalSoup. A Python library for automating website interaction.

概述

用于自动与网站交互的python库。 mechanicalsoup自动存储和发送cookies,如下所示 重定向,并可以跟踪链接和提交表单。不是这样的 javascript。

mechanicalsoup是由M Hickford创建的,他是 Mechanize库。 不幸的是,机械化是incompatible with Python 3 until 2019及其发展 停滞了好几年。mechanicalsoup提供了一个类似的api,构建于python之上 巨人Requests(用于 http会话)和BeautifulSoup(用于文档 导航)。自2017年以来,这是一个由 团队包括@hemberger@moy

Gitter Chat

安装

Latest VersionSupported Versions

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

开发

Build StatusCoverage StatusRequirements StatusDocumentation StatusCII Best PracticesLGTM AlertsLGTM Grade

机械组的建造、测试和辅助说明: 见CONTRIBUTING.rst

常见问题

阅读FAQ

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java转换/分组列表中的值   java无法解析安卓中来自其他类的方法调用?   基于java Socket的通信独立于用于实现它的编程语言。怎么可能?   支持GZip的java编写游戏文件存储?   在IntelliJ中测试应用程序的java设置类路径   java反转单链表   java登录Firebase时出现了什么问题   java如何创建基于Spring4注释的通道?   java将2d矩阵向右旋转   socketTomcat WebSocket和单独的java进程通信   curl无法将数据发布到服务器,获取错误java。木卫一。IOException:服务器返回HTTP响应代码:415   java使用空对象模式消除空对象   java使用<String,Boolean>加载缓存的正确用法?   java为什么是CertificateFactory方法。generateCertifictae(InputStream)卡在无限循环上?