首页 > 编程语言 >【Python】从0开始写脚本、Selenium详细教程、附源码案例(保姆篇)

【Python】从0开始写脚本、Selenium详细教程、附源码案例(保姆篇)

时间:2024-07-31 15:58:58浏览次数:10  
标签:webdriver Python Selenium selenium element 源码 sleep import browser

在这里插入图片描述

文章目录


更多相关内容可查看

准备工作

首先有python环境以及pycharm工具若需要下载:请参考【Python/PyCharm】卸载、安装、配置环境、及错误解决(保姆篇)

安装selenium

在pycharm终端运行如下命令,下图为安装成功

pip install selenium==4.3.0

pip list

在这里插入图片描述


配置浏览器驱动

下载浏览器驱动这里给出各浏览器(Chrome、Firefox、Edge等)的驱动下载地址,自行下载所需浏览器驱动

在这里插入图片描述

查看自己的浏览器版本,下载对应版本的驱动
在这里插入图片描述

我这里是126的Edge

在这里插入图片描述

将下载好的浏览器驱动放置在Python安装目录下(即Python环境变量配置目录)

在这里插入图片描述


脚本测试

这里是一个简单的脚本可以打开浏览器,三秒后关闭

import time
# 导入selenium包
from selenium import webdriver
# 打开Firefox浏览器
browser = webdriver.Edge()
# 停留三秒
time.sleep(3)
# 关闭浏览器
browser.quit()

到这里就可以打开页面了,例如一些自动抢票、自动帮你打开页面、或者自动帮助你日常需要干的事情、后面都会给出案例


什么是Selenium?

附官方文档:https://www.selenium.dev/zh-cn/documentation/webdriver/getting_started/first_script/

Selenium 是一个用于自动化浏览器操作的开源工具套件。它最初是为Web应用程序测试而创建的,但后来也被广泛用于网页数据抓取等任务。Selenium支持多种浏览器(如Chrome、Firefox、Safari等)和操作系统(Windows、Mac、Linux等),并提供了灵活的API来模拟用户在浏览器中的操作


Selenium功能示例(可直接拷贝执行)

编写一个简单的Python脚本来使用Selenium打开一个网页,并获取网页的标题

from selenium import webdriver

# 使用Chrome浏览器驱动程序
driver = webdriver.Edge()

# 打开网页
driver.get("https://www.example.com")

# 获取网页标题并输出
print("Page title is:", driver.title)

# 关闭浏览器
driver.quit()

在这里插入图片描述

下面是一个示例,自动打开csdn并进行搜索

import time

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait


def open_csdn():
    driver = webdriver.Edge()
    driver.get("https://blog.csdn.net/Aaaaaaatwl/article/details/140791747")
    input_text = WebDriverWait(driver, 30).until(
        EC.element_to_be_clickable((By.ID, "search-blog-words"))
    )
    input_text.send_keys("Python")

    password_login_tab = WebDriverWait(driver, 30).until(
        EC.element_to_be_clickable((By.CLASS_NAME, "btn-search-blog"))
    )
    password_login_tab.click()
    time.sleep(20)
    driver.quit()


if __name__ == "__main__":
    open_csdn()


上述代码是监听了一个输入框跟一个按钮

在这里插入图片描述

成功示例

在这里插入图片描述


Selenium使用

Selenium元素定位

我个人觉得定位是基本,就是如何找到以上案例中的输入框,按钮,剩下的其他就是最基本的输入输出api了

  1. 当使用Selenium通过元素的ID来定位元素时,可以使用By.ID选择器。以下是一个简单的示例代码,演示了如何使用Selenium定位并操作一个具有特定ID的元素:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 创建一个.Edge WebDriver实例
driver = webdriver.Edge()

try:
    # 打开网页
    driver.get("https://example.com")

    # 等待页面加载完毕
    WebDriverWait(driver, 10).until(EC.title_contains("Example Domain"))

    # 通过ID定位元素,并操作该元素
    element = WebDriverWait(driver, 10).until(
        EC.element_to_be_clickable((By.ID, "element-id"))
    )
    
    # 在找到的元素上执行操作,例如点击
    element.click()

finally:
    # 关闭浏览器
    driver.quit()

  1. 通过元素的名称(name属性)来定位元素时,可以使用By.NAME选择器。以下是一个示例代码
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 创建一个Edge WebDriver实例
driver = webdriver.Edge(executable_path='/path/to/your/msedgedriver.exe')

try:
    # 打开网页
    driver.get("https://example.com")

    # 等待页面加载完毕
    WebDriverWait(driver, 10).until(EC.title_contains("Example Domain"))

    # 通过名称定位元素,并操作该元素
    element = WebDriverWait(driver, 10).until(
        EC.element_to_be_clickable((By.NAME, "element-name"))
    )
    
    # 在找到的元素上执行操作,例如点击
    element.click()

finally:
    # 关闭浏览器
    driver.quit()

3.通过类名(class name)定位元素可以使用By.CLASS_NAME选择器。以下是一个示例代码

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 创建一个Edge WebDriver实例
driver = webdriver.Edge(executable_path='/path/to/your/msedgedriver.exe')

try:
    # 打开网页
    driver.get("https://example.com")

    # 等待页面加载完毕
    WebDriverWait(driver, 10).until(EC.title_contains("Example Domain"))

    # 通过类名定位元素,并操作该元素
    element = WebDriverWait(driver, 10).until(
        EC.element_to_be_clickable((By.CLASS_NAME, "element-class"))
    )
    
    # 在找到的元素上执行操作,例如点击
    element.click()

finally:
    # 关闭浏览器
    driver.quit()

  1. 通过标签名定位:如果你想定位页面上的第一个<a>标签,那么可以这样定位它:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 创建一个Edge WebDriver实例
driver = webdriver.Edge(executable_path='/path/to/your/msedgedriver.exe')

try:
    # 打开网页
    driver.get("https://example.com")

    # 等待页面加载完毕
    WebDriverWait(driver, 10).until(EC.title_contains("Example Domain"))

    # 通过标签名定位元素,并操作该元素
    elements = driver.find_elements(By.TAG_NAME, "a")
    
    # 输出所有链接的文本内容
    for element in elements:
        print(element.text)

finally:
    # 关闭浏览器
    driver.quit()

  1. 通过链接文本定位:如果页面上有一个链接,其文本是"About Us",那么可以这样定位它:
# 创建一个Edge WebDriver实例(省略前文相同部分)

try:
    # 打开网页
    driver.get("https://example.com")

    # 等待页面加载完毕
    WebDriverWait(driver, 10).until(EC.title_contains("Example Domain"))

    # 通过链接文本定位元素,并点击该链接
    element = WebDriverWait(driver, 10).until(
        EC.element_to_be_clickable((By.LINK_TEXT, "About Us"))
    )
    
    # 点击链接
    element.click()

finally:
    # 关闭浏览器
    driver.quit()

  1. 通过部分链接文本定位:如果页面上有一个链接,其文本是"Welcome to our website",你可以使用部分文本来定位它:
# 创建一个Edge WebDriver实例(省略前文相同部分)

try:
    # 打开网页
    driver.get("https://example.com")

    # 等待页面加载完毕
    WebDriverWait(driver, 10).until(EC.title_contains("Example Domain"))

    # 通过部分链接文本定位元素,并点击该链接
    element = WebDriverWait(driver, 10).until(
        EC.element_to_be_clickable((By.PARTIAL_LINK_TEXT, "Welcome"))
    )
    
    # 点击链接
    element.click()

finally:
    # 关闭浏览器
    driver.quit()

  1. 通过CSS选择器定位
# 创建一个Edge WebDriver实例(省略前文相同部分)

try:
    # 打开网页
    driver.get("https://example.com")

    # 等待页面加载完毕
    WebDriverWait(driver, 10).until(EC.title_contains("Example Domain"))

    # 通过CSS选择器定位元素,并操作该元素
    element = WebDriverWait(driver, 10).until(
        EC.element_to_be_clickable((By.CSS_SELECTOR, "input#username"))
    )
    
    # 在找到的输入框中输入文本
    element.send_keys("username123")

finally:
    # 关闭浏览器
    driver.quit()

  1. 通过XPath定位-F12选中框右键即可复制XPath路径
# 创建一个Edge WebDriver实例(省略前文相同部分)

try:
    # 打开网页
    driver.get("https://example.com")

    # 等待页面加载完毕
    WebDriverWait(driver, 10).until(EC.title_contains("Example Domain"))

    # 通过XPath定位元素,并操作该元素
    element = WebDriverWait(driver, 10).until(
        EC.element_to_be_clickable((By.XPATH, "//input[@id='username']"))
    )
    
    # 在找到的输入框中输入文本
    element.send_keys("username123")

finally:
    # 关闭浏览器
    driver.quit()

By对象实例对象

class By:
    """
    Set of supported locator strategies.
    """

    ID = "id"
    XPATH = "xpath"
    LINK_TEXT = "link text"
    PARTIAL_LINK_TEXT = "partial link text"
    NAME = "name"
    TAG_NAME = "tag name"
    CLASS_NAME = "class name"
    CSS_SELECTOR = "css selector"

文本输入、清除与提交

  • send_keys(‘XXX’)文本输入。
  • clear()文本清空。
  • submit()提交:submit()只能用于包含属性type='submit’的标签,并且嵌套在form表单中。
import time
# 导入selenium包
from selenium import webdriver
from selenium.webdriver.common.by import By
# 启动并打开指定页面
browser = webdriver.Firefox()
browser.get("http://www.csdn.net")
# 通过css选择器定位输入框
input_text = browser.find_element(By.CSS_SELECTOR,'#toolbar-search-input')
# 输入文本
input_text.send_keys("selenium")
# 停留2秒
time.sleep(2)
# 清空文本
input_text.clear()
# 通过xpath选择器定位输入框,并输入CSDN
input_text = browser.find_element(By.XPATH,'//*[@id="sb_form_q"]').send_keys("CSDN")
time.sleep(2)
# 定位提交按钮后提交
browser.find_element(By.XPATH,'//*[@id="sb_form_go"]').submit()
# 停留三秒后关闭浏览器
time.sleep(3)
browser.quit()

获取页面内容

import time
# 导入selenium包
from selenium import webdriver
from selenium.webdriver.common.by import By
# 启动并打开指定页面
browser = webdriver.Firefox()
browser.get("http://www.csdn.net")
# 获取标题
title = browser.title
# 输出
print(title)
# 获取源代码
source_code = browser.page_source
#输出源代码
print(source_code)
# 获取页面链接
url = browser.current_url
#输出页面链接
print(url)
# 获取标签内文本
text = browser.find_element(By.XPATH, '/html/body/div[1]/div/div/div/div[2]/div/div/button/span').text
print(text)
# 关闭页面
time.sleep(3)
browser.quit()

调整浏览器窗口尺寸

import time
# 导入selenium包
from selenium import webdriver
from selenium.webdriver.common.by import By
# 启动并打开指定页面
browser = webdriver.Firefox()
browser.get("http://www.csdn.net")
# 窗口最大化
browser.maximize_window()
#停留2秒
time.sleep(2)
#窗口最小化
browser.minimize_window()
# 指定窗口尺寸
browser.set_window_size(300, 500)
# 关闭页面
time.sleep(3)
browser.quit()

前进一页后退一页

import time
# 导入selenium包
from selenium import webdriver
from selenium.webdriver.common.by import By

# 启动并打开指定页面
browser = webdriver.Firefox()
browser.get("http://www.csdn.net")
browser.find_element(By.LINK_TEXT, 'Python').click()
#停留2秒
time.sleep(2)
# 页面后退一页
browser.back()
# 停留2秒
time.sleep(2)
# 前进一页
browser.forward()
# 关闭页面
time.sleep(3)
browser.quit()

页面刷新

import time
# 导入selenium包
from selenium import webdriver
from selenium.webdriver.common.by import By
# 启动并打开指定页面
browser = webdriver.Firefox()
browser.get("http://www.csdn.net")
browser.find_element(By.LINK_TEXT, 'Python').click()
#停留2秒
time.sleep(2)
# 页面刷新
browser.refresh()
# 关闭页面
time.sleep(3)
browser.quit()

窗口切换

from time import sleep
# 导入selenium包
from selenium import webdriver
from selenium.webdriver.common.by import By
# 启动并打开指定页面
browser = webdriver.Firefox()
browser.get("http://www.csdn.net")
sleep(2)
# 获取当前窗口句柄
page_context = browser.current_window_handle
# 打开其它页面
browser.find_element(By.XPATH, '//*[@id="toolbar-search-input"]').send_keys('selenium')
browser.find_element(By.XPATH, '/html/body/div[1]/div/div/div/div[2]/div/div/button/span').click()
sleep(2)
# 切换到刚开始打开页面
browser.switch_to.window(page_context)
# 获取当前打开所有页面的句柄
pages_context = browser.window_handles
# 输出当前打开页面个数
print(len(pages_context))  # 结果:2
# 关闭
sleep(3)
browser.quit()

frame/iframe内元素操作

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<title>frame内敛框架页面</title>
</head>
<body>
	这是框架frame外:<input type="text" >
	<iframe id='frame' src="http://www.csdn.net" width=1000px height=500px></iframe>
</body>
</html>
from time import sleep
# 导入selenium包
from selenium import webdriver
from selenium.webdriver.common.by import By
# 启动并打开指定页面
browser = webdriver.Firefox()
browser.get("file:///C:/Users/admin/Desktop/frame.html")
sleep(2)
# 定位到iframe标签
tag_iframe = browser.find_element(By.TAG_NAME, 'iframe')
# 切换到iframe框架页面内
browser.switch_to.frame(tag_iframe)
# 定位到框架内搜索框并输入内容
browser.find_element(By.LINK_TEXT, 'Python').click()
sleep(2)
# 从内敛框架页面切出
browser.switch_to.parent_frame()
browser.find_element(By.XPATH, "//input").send_keys("这是框架外面!")
# 关闭浏览器
sleep(3)
browser.quit()

获取标签元素的属性值(复选框)

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<title></title>
</head>
<body>
	用户名:<input type="text" name="user_name">
	密码:<input type="password" name="pwd">
	<input type="checkbox" name="Java">Java
	<input type="checkbox" name="Python">Python
	<input type="checkbox" name="C++">C++
	<input type="checkbox" name="JavaScript">JavaScript
	<input type="checkbox" name="HTML">HTML
</body>
</html>

import time
# 导入selenium包
from selenium import webdriver
from selenium.webdriver.common.by import By
# 启动并打开指定页面
browser = webdriver.Firefox()
browser.get("file:///C:/Users/admin/Desktop/checkbox.html")
# 定位input标签
tag_input = browser.find_elements(By.TAG_NAME, 'input')
# 通过type属性的值来定位元素,并进行选取
for type_value in tag_input:
    # 输出input标签的name属性的值:
    print(type_value.get_attribute("name"))
    # 对复选框进行选取操作
    if type_value.get_attribute("type") == "checkbox":
        type_value.click()
        time.sleep(2)
# 关闭浏览器
time.sleep(3)
browser.quit()

下拉列表操作

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<title></title>
</head>
<body>
	编程语言:<select>
		<option>Java</option>
		<option>C++</option>
		<option value="Python">Python</option>
		<option>HTML</option>
		<option>JavaScript</option>
	</select>
</body>
</html>


from time import sleep
# 导入selenium包
from selenium import webdriver
from selenium.webdriver.common.by import By
# 导入Select类
from selenium.webdriver.support.select import Select

# 启动并打开指定页面
browser = webdriver.Firefox()
browser.get("file:///C:/Users/admin/Desktop/select.html")
# 定位下拉列表标签,并创建下拉列表对象
select = Select(browser.find_element(By.TAG_NAME, "select"))
# 通过value属性选择选项
select.select_by_value("Python")
sleep(2)
# 通过文本内容选择选项
select.select_by_visible_text("C++")
sleep(2)
# 通过选项索引号选择选项
select.select_by_index(0)  # 等同于 select.options[0].click()
sleep(2)
# 通过options属性循环选取
for i in select.options:
    i.click()
    sleep(2)
# 关闭浏览器
sleep(3)
browser.quit()


弹窗操作

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<title></title>
</head>
<body>
	<input type="button" id="alert" value="alert弹窗" onclick="alert('这是alert()弹窗!')">
	<input type="button" id="confirm"value="confirm弹窗" onclick="confirm('这是confirm()弹窗!')" >
	<input type="button" id="prompt" value="prompt弹窗" onclick="prompt('这是prompt()弹窗!','这是prompt()弹窗的默认值!')">
</body>
</html>


from time import sleep
# 导入selenium包
from selenium import webdriver
from selenium.webdriver.common.by import By
# 启动并打开指定页面
browser = webdriver.Firefox()
browser.get("file:///C:/Users/admin/Desktop/alert.html")
# alert()弹窗处理
browser.find_element(By.ID, "alert").click()
sleep(2)
# 获取弹窗对象
alert = browser.switch_to.alert
# 输出弹窗内容
print(alert.text)  # 结果:这是alert()弹窗!
# 确认弹窗
alert.accept()
sleep(2)
# confirm()弹窗
browser.find_element(By.ID, "confirm").click()
sleep(2)
# 获取弹窗对象
confirm = browser.switch_to.alert
# 输出弹窗内容
print(confirm.text)  # 这是confirm()弹窗!
# 执行性弹窗的取消按钮
confirm.dismiss()  # confirm.accept() # 执行弹窗确认按钮
sleep(2)
# prompt()弹窗
browser.find_element(By.ID, "prompt").click()
sleep(2)
# 获取弹窗对象
prompt = browser.switch_to.alert
# 输出弹窗内容
print(prompt.text)  # 这是prompt()弹窗!
# 向弹窗的输入框内输入内容
prompt.send_keys("这是弹窗prompt()")
sleep(2)
# 执行性弹窗的确认按钮
prompt.accept()
# 关闭浏览器
sleep(3)
browser.quit()


鼠标操作

from time import sleep
# 导入selenium包
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
# 启动并打开指定页面
browser = webdriver.Firefox()
browser.get("https://www.csdn.net")
sleep(2)
# 创建ActionChains对象
action = ActionChains(browser)
# 定位标签并将鼠标移入,并呈现移入结果
tag = browser.find_element(By.XPATH, '//div/a[@class="btn-write-new"]')
action.move_to_element(tag).perform()
sleep(3)
tag = browser.find_element(By.CSS_SELECTOR, '.blog-nav-box')
action.move_to_element(tag).perform()
sleep(2)
browser.find_element(By.LINK_TEXT, "数学").click()
# 关闭浏览器
sleep(2)
browser.quit()


键盘操作

from time import sleep
# 导入selenium包
from selenium import webdriver
from selenium.webdriver import ActionChains, Keys
from selenium.webdriver.common.by import By
# 启动并打开指定页面
browser = webdriver.Firefox()
browser.get("https://www.csdn.net")
sleep(2)
input_text = browser.find_element(By.XPATH, '//*[@id="toolbar-search-input"]')
input_text.send_keys("selenium")
sleep(2)
input_text.send_keys(Keys.CONTROL, "a")  # 全选
sleep(2)
input_text.send_keys(Keys.CONTROL, 'x')  # 剪切
sleep(2)
input_text.send_keys(Keys.CONTROL, 'v')  # 粘贴
sleep(2)
input_text.send_keys(Keys.BACK_SPACE)  # 回退一格
# 关闭浏览器
sleep(2)
browser.quit()


JS代码执行

from time import sleep
# 导入selenium包
from selenium import webdriver
# 启动并打开指定页面
browser = webdriver.Firefox()
browser.get("https://www.csdn.net")
sleep(2)
# 执行js弹窗代码
browser.execute_script("alert('这是js弹窗代码')")
sleep(2)
browser.switch_to.alert.accept()
sleep(2)
# 执行js窗口滚动条代码
browser.execute_script("window.scrollTo(20,1000)")
sleep(2)
# 打开多个窗口
browser.execute_script("window.open('https://www.baidu.com')")
browser.execute_script("window.open('https://www.bing.com')")
sleep(2)
browser.quit()


窗口截图

from time import sleep
# 导入selenium包
from selenium import webdriver
# 启动并打开指定页面
browser = webdriver.Firefox()
browser.get("https://www.csdn.net")
sleep(2)
# 浏览器窗口截屏
browser.get_screenshot_as_file("csdn.png")
sleep(2)
browser.quit()


三种等待方法

  • sleep(n)强制等待,需要导入time包,n表示等待秒数;用于避免因元素未加载出来而定位失败的情况。
  • implicitly_wait(n)隐式等待,如果超过n秒,抛出找不到元素的异常;隐式等待只需要声明一次,一般在打开浏览器后进行声明。隐式等待存在的问题是程序会一直等待整个页面加载完成才会执行下一步,有时候想要定位的元素早就加载好了,但是由于别的页面元素没加载好,仍会等到整个页面加载完成才能执行下一步。
  • WebDriverWait(browser,n,h):显式等待,browser代表浏览器对象,n等待时长,h频率。相比于隐式等待,显式等待只针对指定的元素生效,不再是针对所有的页面元素。可以根据需要定位的元素来设置显式等待,无需等待页面完全加载,节省了大量因加载无关紧要的页面元素而浪费的时间。使用方法WebDriverWait(browser,5,0.5).until(expected_conditions.presence_of_element_located((By.ID,‘kw’)))
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
browser = webdriver.Firefox()
sleep(2)
# 打开csdn首页
browser.get("https://www.csdn.net")
tag = WebDriverWait(browser, 5, 0.5).until(EC.presence_of_element_located((By.XPATH, '//*[@id="toolbar-search-input"]')))
tag.send_keys("selenium")
#关闭
sleep(2)
browser.quit()

标签:webdriver,Python,Selenium,selenium,element,源码,sleep,import,browser
From: https://blog.csdn.net/Aaaaaaatwl/article/details/140791747

相关文章

  • 微信域名屏蔽监测接口+源码
    <?php//填入待检测的域名列表$domainList=array(  'google.com',  'baidu.com',);//遍历域名列表进行检测foreach($domainListas$domain){  $url="https://down.ychengsnsm.com/wx/?url={$domain}";  //发送HTTP请求  $curl=curl......
  • springboot vue寝室小卖部系统源码和答辩PPT论文
    本文首先实现了“一分钟”寝室小卖部系统设计与实现管理技术的发展随后依照传统的软件开发流程,最先为系统挑选适用的言语和软件开发平台,依据需求分析开展控制模块制做和数据库查询构造设计,随后依据系统整体功能模块的设计,制作系统的功能模块图、E-R图。随后,设计框架,依据设计......
  • Python控制台输出的华丽变身:色彩与风格的深度探索
    一、文章摘要本文深入探讨了Python标准输出中字体颜色的设置方法,特别是通过ANSI转义序列实现的文本样式控制。文章详细解析了ANSI转义序列的组成、各个颜色代码的含义,以及如何在Python中使用这些代码来改变终端输出的字体颜色、背景色、高光、加粗等样式。通过丰富的案例代码,......
  • 二十五、【机器学习】-【Python手搓3层神经网络】:从零构建深度学习模型的实战指南
    目录一、序章:为什么你需要掌握手搓神经网络二、基础篇:神经网络基础知识回顾三、实战配置:搭建3层神经网络的步骤与技巧(一)、__init__ 方法初始化神经网络(二)、train 方法实现了前向传播和反向传播(三)、query 方法(四)、全部代码四、总结一、序章:为什么你需要掌握手......
  • AI创作商业系统软件源码(SparkAi系统) AI换脸/智能体GPTs应用/AI视频生成AI绘画/文档分
    AI创作商业系统软件源码(SparkAi系统)AI换脸/智能体GPTs应用/AI视频生成AI绘画/文档分析/GPT4.0模型支持目录一、人工智能SparkAi创作系统二、功能模块介绍系统快速体验三、系统功能模块3.1AI全模型支持/插件系统AI模型提问AI智能体文档分析多模态识图理解TTS&......
  • 在Python中将简单的字典导出到Excel文件中
    我是Python新手。我有一个简单的字典,其键和值如下dict1={"numberofstoragearrays":45,"numberofports":2390,......}我需要将它们放入Excel表中,如下numberofstoragearrays45numberofports2390我有一个非常大的字典。importpandasasp......
  • 将 python 脚本作为 AWS 胶水服务作业运行
    我有一个使用本地路径在本地运行的python脚本,但我需要复制此python脚本并将其作为AWS胶水服务作业运行并将输出保存在s3存储桶中。请帮助我逐步说明。将Python脚本作为AWSGlue作业运行的步骤如下:步骤1:修改的Python脚本以使其与Glue兼容......
  • Python - Decorating classes
    Whenwetalkaboutdecoratingclasses,wecaneitherdecorateindividualmethodsorwecancreateadecoratortodecoratethewholeclass.classMyClass:def__init__(self,a):self.a=a@timerdefmethod1(self,x,y):print......
  • 如何在 python 中使用矩阵分解从 3 个不同的矩阵(2 个交互矩阵和 1 个相似矩阵)创建一个
    我有3个不同大小的矩阵A、B、C,它们有一些共同的元素。A(相似性)与B(交互)有一些共同元素,但与C(第二交互矩阵)没有共同元素。B有一些与C相同的元素。我想创建一个基于B和C的矩阵M,但提供基于A、B、C的输出,就像推荐系统类型一样,其中根据评分、观看次数和偏好推荐电影。例......
  • Python - Decorators
    Adecoratorisacallablethattakesacallableasinputandreturnsacallable.Thisisthegeneraldefinitionofadecorator.Thecallableinthisdefinitioncanbeafunctionoraclass.Inourinitialdiscussion,wewilltalkaboutdecoratorfunctions......