python requests库详解

时间: 2023-05-31 14:19:19 浏览: 41
### 回答1: Python的requests库是一个用于发送HTTP请求的Python第三方库。它可以方便地发送HTTP/1.1请求,并且支持许多HTTP协议的高级功能,如Cookie、SSL/TLS验证、代理等。requests库的使用非常简单,可以轻松地发送GET、POST、PUT、DELETE等请求,并且可以方便地处理响应结果。此外,requests库还支持会话管理、文件上传、流式请求等高级功能,是Python中最常用的HTTP请求库之一。 ### 回答2: Python中的requests库是一个非常流行的库,用于向URL发送各种HTTP请求。它包含了许多强大的功能,例如支持HTTP和HTTPS协议、文件上传、Cookie和Session等。该库的使用方式简单、直接。 Requests库的主要功能如下: 1.发送HTTP GET和POST请求 2.支持HTTP和HTTPS协议 3.支持文件上传和下载 4.支持Cookies和Session 5.支持HTTP代理 6.支持URL重定向和认证 7.支持HTTP链接和请求超时设置 8.支持用户自定义参数和头部信息 请求数据: requests库的get和post方法是最常用的两种HTTP请求方法。下面是这两种方法的语法格式: response = requests.get(url, params=None, **kwargs) response = requests.post(url, data=None, json=None, **kwargs) - url: 需要请求的API地址; - params: 使用一个字典对象,将请求的键值对以字典的形式传给API; - data: 字符串或字节型数据,将数据作为请求主体提交给API; - json: JSON格式的数据,将数据以JSON的格式作为请求主体提交给API。 响应数据: 响应对象是请求方法的返回值,对于任何的HTTP请求,服务器都会返回一个响应结果。响应结果的包含了HTTP状态码、响应头部以及响应主体。 状态码: HTTP状态码表示了服务器对请求的响应结果类型。可以通过响应对象的.status_code属性获取响应的状态码; 响应头: 在请求的响应中,服务器会返回HTTP头部信息。可以通过响应对象的headers属性获取响应头部信息; 响应内容: 响应内容是服务器对于请求的响应结果主体信息。可以通过响应对象的.text属性获取响应内容。 异常处理: 在Python请求库中,HTTP请求可能会发生多种错误,例如请求超时、服务器错误等。这些错误可以通过异常处理来处理。为了确保正常的运行,程序员需要使用try和except语句来捕获异常。对于错误,Requests库引发的所有异常都派生自requests.exceptions.RequestException类。 请求头设置: HTTP头部是在HTTP请求过程中传输的关键信息。其中包括了客户端User-Agent、请求日期、请求主体等。在Requests库中,可通过headers传入一个字典对象,将键值对以字典的形式传给API。其中,我们可以进行自定义设置, 添加自定义Header头。 请求超时: 请求超时是为了防止请求过程中出现无限期的阻塞,我们可以通过传递一个元结构timeout到对象上来实现请求超时的功能,即如果在timeout(即等待目标服务器响应的时间,秒)的时间内没有得到响应,则会引发一个异常库exceptions.TimeoutAlert 。 处理URL重定向: 在许多情况下,API服务提供者为某些请求跳转到新的URL。支持两种状态码,即301和302。为了处理这种自动跳转重定向状态码,Requests库提供了支持,我们可以使用其属性allow_redirects。这个属性用于允许重定向,直接设置为True即可。 如果不需要重定向,则直接设置为False。 维持会话: Requests库还允许我们在应用程序代码中保持状态,使用requests.Session 会话上下文,以便在同一网站的许多请求之间保留Cookie和Header等信息。会话上下文假定通过使用session的方法和属性,将HTTP请求连接到会话之后进行处理。它会维护不断的状态,直到要关闭所有连接或超时时间到达。例如: import requests #创建一个会话对象 session=requests.Session() #发送请求,requests将会自动保存所有的Cookies值 session.get('http://httpbin.org/cookies/set/sessioncookie/123456789') #获取Cookies值 r=session.get('http://httpbin.org/cookies') print(r.text) 代理设置: 我们可以通过传递proxies 字典属性到requests库中,来创建代理服务器。proxies字典对象应包含键值对,其中键是指定的代理协议,值是代理服务器的URI。 证书验证: 默认情况下,Requests库会对SSL证书进行验证。如果证书无效或存在问题,则会引发异常。要停用这种验证,我们可以将verify属性设置为False。可以通过将verify属性设置为一个字符串‘ca.pem’或者一段路径使其指向一个.pem的证书,进而进行需求SSL验证。 以上是Requests库的一些常见用例及方法,尽管Requests库很方便,但是一定要在用之前小心操作,避免发送一些敏感的用户信息甚至是病毒等,对目标服务器造成不必要的伤害,这是任何时候都不能被允许的。 ### 回答3: Python是一种非常流行的编程语言,其在网络编程中的应用也非常广泛。Python Requests库是Python第三方库中实现HTTP协议的库之一,它使得Python程序能够很方便地发送HTTP请求和接收HTTP响应。Requests库的常用方法有.get()、post()、put()、delete()等,它们可以实现相应的HTTP请求方式。 Requests库的核心是Session类,它可以一次打开一个长期的连接,自动处理cookies,从而为高性能页面下载提供了帮助。它还可以设置一个连接池,对于频繁的请求可直接重用此连接池,提高程序的效率。 Requests库使用起来非常方便,在使用前需要导入库,然后创建Request对象,设置相应的HTTP请求参数,调用方法发送请求,并接收响应。对于常用的HTTP请求头信息,Requests库提供了方便的请求头字典,可以很方便地设置请求头信息。 Requests库的常见应用场景有爬虫、测试、接口测试和访问多种Web服务接口等。它非常适用于需要发送HTTP请求和接收HTTP响应的各种应用场景,尤其是需要对各种Web服务API进行测试或抓包分析时非常实用。 总之,Python Requests库是一个很好的HTTP库,使用它能够方便地实现各种HTTP请求和响应操作,它也是Python标准库中最完善的HTTP库之一,因此被广泛使用。

相关推荐

在Python的requests库中,post()方法用于发送HTTP POST请求。POST请求常用于向服务器提交数据,例如表单数据、JSON数据等。 使用post()方法发送POST请求的基本语法如下: python response = requests.post(url, data=None, json=None, headers=None, cookies=None, params=None) 其中,参数说明如下: - url:要发送POST请求的URL地址。 - data:要发送的表单数据,可以是字典、字符串或字节流。默认为None。例如,可以使用data={'key1': 'value1', 'key2': 'value2'}发送表单数据。 - json:要发送的JSON数据,可以是字典、列表或字符串。默认为None。例如,可以使用json={'key1': 'value1', 'key2': 'value2'}发送JSON数据。 - headers:要发送的请求头,可以是字典。默认为None。例如,可以使用headers={'Content-Type': 'application/json'}设置请求头。 - cookies:要发送的Cookies,可以是字典。默认为None。例如,可以使用cookies={'name': 'value'}设置Cookies。 - params:URL中的查询参数,可以是字典或字符串。默认为None。例如,可以使用params={'key': 'value'}添加查询参数。 使用post()方法发送POST请求的示例代码如下: python import requests url = 'http://example.com/api' data = {'key1': 'value1', 'key2': 'value2'} headers = {'Content-Type': 'application/json'} response = requests.post(url, data=data, headers=headers) print(response.status_code) # 打印响应状态码 print(response.text) # 打印响应内容 在上面的示例中,我们指定了要发送的URL地址、表单数据和请求头。发送POST请求后,通过response对象可以获取服务器返回的响应状态码和响应内容。 需要注意的是,POST请求中的数据可以使用data参数或json参数,二者用法不同。使用data参数发送的是表单数据,会自动将数据进行URL编码;而使用json参数发送的是JSON数据,会自动将数据进行JSON序列化。根据实际需求选择适合的参数使用。
Python中的requests库是一个非常强大和流行的HTTP请求库,它提供了一个方便的session对象,可以用来在多个请求之间共享状态和信息。 session对象的妙用之一是它可以保存cookie。在使用requests发送HTTP请求时,服务器会返回一个包含session ID的cookie,这个cookie可以保存在session对象中,然后在后续的请求中自动发送给服务器。这样就能够实现模拟登录一次,然后在之后的请求中保持登录状态,无需重复登录。 另一个妙用是可以设置会话级的请求头。通过在session对象中设置请求头,可以保持在多个请求中共享相同的请求头。这对于需要在每个请求中传递相同的用户代理、认证信息或其他常用的请求头字段的情况非常有用。 session对象还可以使用连接池来管理HTTP连接。在每个请求中创建和关闭连接可能会产生很大的开销,而使用session对象可以实现连接的重用,从而提高性能和效率。 此外,session对象还提供了其他一些方便的功能,如跟踪重定向、处理SSL证书验证、处理请求超时等。它还支持将请求和响应数据保存到文件、自动处理网络代理等。 总而言之,Python中的requests库session对象是一个非常强大和方便的工具,它可以帮助我们更好地管理HTTP请求,实现登录状态的保持,共享请求头和连接管理等功能。使用session对象可以提高代码的可维护性和性能,减少重复代码。它是进行Web开发、爬虫等各种与HTTP请求相关的任务时的必备工具。
Python的requests库是一个用于发送HTTP请求的第三方库。它基于Python内置模块进行了封装,使得发送网络请求变得更加简单和人性化。通过使用requests库,可以轻松完成浏览器可以做到的任何操作。 使用requests库发送GET请求的示例代码如下: import requests # 最基本的不带参数的GET请求 r = requests.get('https://github.com/Ranxf') # 带参数的GET请求 r1 = requests.get(url='http://dict.baidu.com/s', params={'wd': 'python'}) 此外,requests库还提供了异常处理的功能,可以处理请求过程中可能出现的异常情况。例如,可以使用try-except语句块来捕获请求过程中可能产生的请求异常,并进行相应的处理。下面是一个处理状态异常的示例代码: import requests URL = 'http://ip.taobao.com/service/getIpInfo.php' # 淘宝IP地址库API try: r = requests.get(URL, params={'ip': '8.8.8.8'}, timeout=1) r.raise_for_status() # 如果响应状态码不是200,就主动抛出异常 except requests.RequestException as e: print(e) else: result = r.json() print(type(result), result, sep='\n') 123 #### 引用[.reference_title] - *1* *2* *3* [Python——requests模块详解](https://blog.csdn.net/m0_72557783/article/details/128208127)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
参数和data有什么区别? 在python requests库的request()函数中,params和data都是可选参数,用于向服务器发送请求时传递参数的。区别如下: params参数用于GET请求,将参数以键值对的形式添加到URL的末尾。例如,使用params参数可以向百度搜索发送一个GET请求,搜索关键词为'python',示例代码如下: import requests r = requests.get(url='http://dict.baidu.com/s', params={'wd': 'python'}) data参数用于POST请求,将参数以字典的形式作为请求的主体发送到服务器。例如,向百度贴吧发送一个POST请求,搜索关键词为'python',并且显示结果的页数为2,示例代码如下: import requests from fake_useragent import UserAgent url = 'http://tieba.baidu.com/f?' # 基准url地址 data = {"kw": "python", "pn": 50} # data参数 headers = {'User-Agent': UserAgent().random} # headers参数 html = requests.post(url=url, data=data, headers=headers, verify=False).text # 发送POST请求 print(html) # 打印响应内容 总结来说,params参数适用于GET请求,将参数添加到URL的末尾;data参数适用于POST请求,将参数作为请求的主体发送到服务器。123 #### 引用[.reference_title] - *1* [Python requests模块详解](https://blog.csdn.net/lx1315998513/article/details/105746615)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [【Python_requests学习笔记(三)】requests模块中params参数用法](https://blog.csdn.net/sallyyellow/article/details/129686842)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [python requests包的request()函数中的参数-params和data的区别介绍](https://download.csdn.net/download/weixin_38500572/12852315)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
在Python的requests库中,可以使用post方法发送带有header的post请求。首先,在代码中导入requests模块,然后使用post()方法发送请求。你可以在请求中通过headers参数传递header信息。例如,可以使用以下代码发送带有header的post请求: import requests url = "http://example.com/api" headers = { "User-Agent": "Mozilla/5.0", "Content-Type": "application/json" } data = { "key1": "value1", "key2": "value2" } response = requests.post(url, headers=headers, json=data) 在这个例子中,我们定义了一个url和headers变量,分别表示请求的URL和请求头信息。然后,我们定义了一个data变量,它包含了我们要发送的数据。最后,我们使用requests.post()方法发送请求,并传递了headers参数和json参数(以字典形式传递数据)。返回的响应可以通过response变量获取。所示。 另外,如果你需要发送文件,可以使用files参数将文件添加到请求中。例如,你可以使用以下代码发送一个文件: import requests url = "http://example.com/upload" files = {"file": open("file.txt", "rb")} response = requests.post(url, files=files) 在这个例子中,我们定义了一个files字典,它包含了要上传的文件。然后,我们使用requests.post()方法发送请求,并传递了files参数。所示。 综上所述,你可以使用Python的requests库发送带有header的post请求,并可以选择性地发送文件。根据你的具体需求,可以相应地调整代码。123 #### 引用[.reference_title] - *1* [详解python requests中的post请求的参数问题](https://blog.csdn.net/zhangke0426/article/details/123236533)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [python 使用requests发送POST请求](https://blog.csdn.net/qq_23730073/article/details/122857953)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
Nginx 是一个高性能的 Web 服务器软件,也可以用来处理动态请求,例如 PHP、Python、Ruby 等脚本语言。下面是 Nginx 如何处理动态请求的详解: 1. 配置 Nginx 首先,需要在 Nginx 的配置文件(通常是 nginx.conf 文件)中指定 Web 根目录。例如,可以将 Web 根目录设置为 /var/www/html: server { listen 80; server_name example.com; root /var/www/html; index index.php index.html index.htm; } 此外,还需要配置 PHP 解释器,以便 Nginx 可以执行 PHP 脚本: location ~ \.php$ { fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } 2. 请求处理 当客户端发起请求时,Nginx 会根据请求的 URL 找到相应的 PHP 文件。然后,Nginx 会将请求发送给 PHP 解释器,PHP 解释器会将 PHP 代码解释为 HTML 页面,并返回给 Nginx。 3. 缓存 为了提高性能,Nginx 可以启用缓存功能。当客户端发起请求时,Nginx 会先检查是否存在缓存。如果存在缓存,Nginx 可以直接返回缓存中的内容,而不需要重新执行 PHP 代码。 4. 负载均衡 当有多个 PHP 解释器时,Nginx 可以使用负载均衡来分配请求。负载均衡可以确保每个 PHP 解释器都能够处理相同数量的请求,从而提高系统的整体性能和可靠性。 5. 总结 动态请求是 Web 应用程序中不可或缺的组成部分。Nginx 提供了处理动态请求的功能,可以配置 Web 根目录、指定 PHP 解释器、启用缓存、使用负载均衡等。
### 回答1: Python接口自动化测试是一种通过编写Python代码自动化执行接口测试的方法,通常采用Python中的第三方库实现。接口测试是针对软件系统的API接口进行验证,包括请求和响应验证、参数验证、返回结果验证等,其目的是确保系统在实现业务功能时能够正确运行和正常响应。Python作为一种高级编程语言,具有良好的表现力和扩展性,广泛应用于接口测试领域。 Python接口自动化测试的实现过程通常包括以下步骤: 1. 安装相应的Python库:比如requests、unittest、pytest等。 2. 编写测试代码:使用相应的Python库编写测试用例,包括测试接口的请求参数、请求方式、响应状态码、响应体等内容。 3. 运行测试:执行测试代码并生成测试报告,通常采用Jenkins、Travis CI等持续集成工具进行自动化运行。 Python接口自动化测试具有以下优势: 1. 快速执行:通过编写Python代码,自动化执行接口测试能够快速完成测试,并且测试过程能够反复执行,提高测试的效率。 2. 灵活性高:Python具有良好的表现力和扩展性,可以自定义接口测试框架和各种测试用例。 3. 代码复用性强:Python代码可以模块化和封装,让测试代码能够被复用,在测试维护中也更加方便。 总之,Python接口自动化测试是一个高效、灵活、可靠的测试方法,在新时代的软件测试中具有非常重要的地位。

最新推荐

构建高效的python requests长连接池详解

主要介绍了构建高效的python requests长连接池详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

Python requests.post方法中data与json参数区别详解

主要介绍了Python requests.post方法中data与json参数区别详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

代码随想录最新第三版-最强八股文

这份PDF就是最强⼋股⽂! 1. C++ C++基础、C++ STL、C++泛型编程、C++11新特性、《Effective STL》 2. Java Java基础、Java内存模型、Java面向对象、Java集合体系、接口、Lambda表达式、类加载机制、内部类、代理类、Java并发、JVM、Java后端编译、Spring 3. Go defer底层原理、goroutine、select实现机制 4. 算法学习 数组、链表、回溯算法、贪心算法、动态规划、二叉树、排序算法、数据结构 5. 计算机基础 操作系统、数据库、计算机网络、设计模式、Linux、计算机系统 6. 前端学习 浏览器、JavaScript、CSS、HTML、React、VUE 7. 面经分享 字节、美团Java面、百度、京东、暑期实习...... 8. 编程常识 9. 问答精华 10.总结与经验分享 ......

基于交叉模态对应的可见-红外人脸识别及其表现评估

12046通过调整学习:基于交叉模态对应的可见-红外人脸识别Hyunjong Park*Sanghoon Lee*Junghyup Lee Bumsub Ham†延世大学电气与电子工程学院https://cvlab.yonsei.ac.kr/projects/LbA摘要我们解决的问题,可见光红外人重新识别(VI-reID),即,检索一组人的图像,由可见光或红外摄像机,在交叉模态设置。VI-reID中的两个主要挑战是跨人图像的类内变化,以及可见光和红外图像之间的跨模态假设人图像被粗略地对准,先前的方法尝试学习在不同模态上是有区别的和可概括的粗略的图像或刚性的部分级人表示然而,通常由现成的对象检测器裁剪的人物图像不一定是良好对准的,这分散了辨别性人物表示学习。在本文中,我们介绍了一种新的特征学习框架,以统一的方式解决这些问题。为此,我们建议利用密集的对应关系之间的跨模态的人的形象,年龄。这允许解决像素级中�

java二维数组矩阵相乘

矩阵相乘可以使用二维数组来实现,以下是Java代码示例: ```java public class MatrixMultiplication { public static void main(String[] args) { int[][] matrix1 = {{1, 2, 3}, {4, 5, 6}}; // 定义一个2x3的矩阵 int[][] matrix2 = {{7, 8}, {9, 10}, {11, 12}}; // 定义一个3x2的矩阵 int[][] result = multiply(matrix1, matr

数据结构1800试题.pdf

你还在苦苦寻找数据结构的题目吗?这里刚刚上传了一份数据结构共1800道试题,轻松解决期末挂科的难题。不信?你下载看看,这里是纯题目,你下载了再来私信我答案。按数据结构教材分章节,每一章节都有选择题、或有判断题、填空题、算法设计题及应用题,题型丰富多样,共五种类型题目。本学期已过去一半,相信你数据结构叶已经学得差不多了,是时候拿题来练练手了,如果你考研,更需要这份1800道题来巩固自己的基础及攻克重点难点。现在下载,不早不晚,越往后拖,越到后面,你身边的人就越卷,甚至卷得达到你无法想象的程度。我也是曾经遇到过这样的人,学习,练题,就要趁现在,不然到时你都不知道要刷数据结构题好还是高数、工数、大英,或是算法题?学完理论要及时巩固知识内容才是王道!记住!!!下载了来要答案(v:zywcv1220)。

通用跨域检索的泛化能力

12056通用跨域检索:跨类和跨域的泛化2* Soka Soka酒店,Soka-马上预订;1印度理工学院,Kharagpur,2印度科学学院,班加罗尔soumava2016@gmail.com,{titird,somabiswas} @ iisc.ac.in摘要在这项工作中,我们第一次解决了通用跨域检索的问题,其中测试数据可以属于在训练过程中看不到的类或域。由于动态增加的类别数量和对每个可能的域的训练的实际约束,这需要大量的数据,所以对看不见的类别和域的泛化是重要的。为了实现这一目标,我们提出了SnMpNet(语义Neighbourhood和混合预测网络),它包括两个新的损失,以占在测试过程中遇到的看不见的类和域。具体来说,我们引入了一种新的语义邻域损失,以弥合可见和不可见类之间的知识差距,并确保潜在的空间嵌入的不可见类是语义上有意义的,相对于其相邻的类。我们还在图像级以及数据的语义级引入了基于混�

ant-button 点击实践

好的,下面是 ant-button 点击实践的步骤: 1. 首先,在你的项目中安装 Ant Design UI 库,可以通过 npm 命令进行安装: ``` npm install antd --save ``` 2. 在你的代码中引入 antd 库和 antd 样式,示例代码如下: ```javascript import React from 'react'; import ReactDOM from 'react-dom'; import 'antd/dist/antd.css'; import { Button } from 'antd'; function handleCl

TFT屏幕-ILI9486数据手册带命令标签版.pdf

ILI9486手册 官方手册 ILI9486 is a 262,144-color single-chip SoC driver for a-Si TFT liquid crystal display with resolution of 320RGBx480 dots, comprising a 960-channel source driver, a 480-channel gate driver, 345,600bytes GRAM for graphic data of 320RGBx480 dots, and power supply circuit. The ILI9486 supports parallel CPU 8-/9-/16-/18-bit data bus interface and 3-/4-line serial peripheral interfaces (SPI). The ILI9486 is also compliant with RGB (16-/18-bit) data bus for video image display. For high speed serial interface, the ILI9486 also provides one data and clock lane and supports up to 500Mbps on MIPI DSI link. And also support MDDI interface.

生成模型的反事实解释方法及其局限性

693694不能很好地可视化/解释非空间定位的属性,如大小、颜色等。此外,它们可以显示图像的哪些区域可以被改变以影响分类,但不显示它们应该如何被改变。反事实解释通过提供替代输入来解决这些限制,其中改变一小组属性并且观察到不同的分类结果。生成模型是产生视觉反事实解释的自然候选者,事实上,最近的工作已经朝着这个目标取得了进展在[31,7,32,1]中,产生了生成的反事实解释,但它们的可视化立即改变了所有相关属性,如图所示。二、[29]中提供的另一种相关方法是使用来自分类器的深度表示来以不同粒度操纵生成的图像然而,这些可能涉及不影响分类结果的性质,并且还组合了若干属性。因此,这些方法不允许根据原子属性及其对分类的影响来其他解释方法使用属性生成反事实,其中可以对所需属性进行完全或部分监督[10,5