用于自动与网站交互的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如何使用springcloudconfig服务器将属性注入现有xml文件   java如何匹配AspectJ中没有特定注释的方法   java如何修改maven项目依赖项的代码   泛型为什么实现接口的类与Java中的接口类型不同?   java JScrollPane和GridBagLayout   java pdfbox。util。ImageIOUtil。书写年龄问题   java未解析引用:textView   PreparedStatement之后的java getGeneratedKeys()。executeBatch()   java在jni程序中保存dll的位置   java自定义上下文注入   java如何在安卓上比较两个复选框值?   html创建访问本地java代码的网站   javarpost与JaxRS   java如何更新被其他线程更改的类中的数组?   在soapui java API中加载外部请求文件   java如何改进从socket读取XML的方式