- 第一步:
你希望如何使用此光盘?
选择:用于 CD/DVD 播放机

- 第二步:刻录音频 CD
按计算机上可以播放的数据将音乐文件刻录到光盘,或者以家庭或汽车音响可以播放的格式刻录。
你想使用哪种格式?
选择:生成一张数据 CD(供计算机和某些 CD 播放机播放)(D)

你希望如何使用此光盘?
选择:用于 CD/DVD 播放机
按计算机上可以播放的数据将音乐文件刻录到光盘,或者以家庭或汽车音响可以播放的格式刻录。
你想使用哪种格式?
选择:生成一张数据 CD(供计算机和某些 CD 播放机播放)(D)
神仙玩意儿,基于selenium,方便管理使用。
pip install seleniumbase
安装好了第一次执行会从GoogleAPI自动下载对应的chrome driver ,特别适合部署再VPS上执行(启动无头模式 headless=True)
看代码:
from seleniumbase import SB
with SB(test=True, uc=True) as sb:
sb.open("https://google.com/ncr")
sb.type('[title="Search"]', "SeleniumBase GitHub page\n")
sb.click('[href*="github.com/seleniumbase/"]')
sb.save_screenshot_to_logs() # ./latest_logs/
print(sb.get_page_title())
卧槽 !你看到了吗:
sb.open()打开网页 ,
sb.click中使用js的选择器,
sb.type 就改变input标签的里面的信息。
牛的来了 还可以过cloudflare
from seleniumbase import SB
with SB(uc=True, test=True, locale="en") as sb:
url = "https://gitlab.com/users/sign_in"
sb.activate_cdp_mode(url)
sb.uc_gui_click_captcha()
sb.sleep(2)
看看这个行云流水的操作:
from seleniumbase import BaseCase
BaseCase.main(__name__, __file__) # Call pytest
class MyTestClass(BaseCase):
def test_swag_labs(self):
self.open("https://www.saucedemo.com")
self.type("#user-name", "standard_user")
self.type("#password", "secret_sauce\n")
self.assert_element("div.inventory_list")
self.click('button[name*="backpack"]')
self.click("#shopping_cart_container a")
self.assert_text("Backpack", "div.cart_item")
self.click("button#checkout")
self.type("input#first-name", "SeleniumBase")
self.type("input#last-name", "Automation")
self.type("input#postal-code", "77123")
self.click("input#continue")
self.click("button#finish")
self.assert_text("Thank you for your order!")
from seleniumbase import sb
with SB(test=True, uc=True) as sb:
sb.open("https://el.psy.congroo.com")
quotes = sb.find_elements("h1")
for quote in quotes:
print(quote.text)
无头浏览器:
from seleniumbase import SB
with SB(headless=True) as sb:
sb.open("https://el.psy.congroo.com")
quotes = sb.find_elements("h1")
for quote in quotes:
print(quote.text)
sb.save_screenshot("webpage_screenshot.png")
print("截图已保存为 webpage_screenshot.png")
python下的eel。可以结合HTML JS CSS创建UI
1.可以从外界引入css 和JS (CDN),目前bootstrap 和Jquery完全没问题
2.在头部引入 <script type="text/javascript" src="/eel.js"></script>
即可,在JS里面可以调用Python的函数方法,即
eel.say_hello(name)(function(result) {
document.getElementById("greeting").innerHTML = result;
});
使用ell.函数名称(传递参数)(function(result) {
document.getElementById(“greeting”).innerHTML = result;
});
(对于python函数返回的结果result处理)
也就是说,该应用的所有网络请求可以在python里面完成,不需要使用AJAX,JS只需要页面交互,其实这样搞个FFMPEG的UI倒是非常简单 233333333333。
其中python 中定义函数需要使用装饰器来暴露这个函数
@eel.expose
def say_hello(name):
return f"Hello, {name}!"
3.最关键是可以打包成EXE格式
打包当前目录所有文件,且以main.py为运行文件,且不显示命令行
pyinstaller --onefile -w --add-data=".:." main.py
需要运行端安装Chrome浏览器才能使用,如果使用chrome便携版 则可能无法使用。
解决方法 Chromium Embedded Framework (CEF)
pip install cefpython3
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Eel应用</title>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/3.4.1/css/bootstrap.min.css" integrity="sha384-HSMxcRTRxnN+Bdg0JdbxYKrThecOKuH5zCYotlSAcp1+c8xmyTe9GYg1l9a69psu" crossorigin="anonymous">
<!-- eel.js必须引入,这点其实很像wasm模式 -->
<script type="text/javascript" src="/eel.js"></script>
</head>
<body class="container">
<h1>欢迎</h1>
<div class="row">
<div class="col-md-6"><button class="btn btn-info" id="abc">ABC</button></div>
<div class="col-md-6">
<input type="text" id="name" placeholder="请输入你的名字" class="form-control"/>
<button onclick="sayHello()" class="btn btn-success" id="hello">打招呼</button>
</div>
</div>
<div class="row">
<div id="greeting"></div>
<button onclick="getJoke()">讲个笑话</button>
<div id="joke"></div>
</div>
<script type="text/javascript">
function sayHello() {
var name = document.getElementById("name").value;
eel.say_hello(name)(function(result) {
document.getElementById("greeting").innerHTML = result;
});
}
function getJoke() {
eel.get_joke()(function(joke) {
document.getElementById("joke").innerHTML = joke;
});
}
$("#abc").click(function(){
var name=prompt("your name?")
$("#name").val(name)
$("#hello").click()
})
</script>
</body>
</html>
main.py
import eel
import random
# 笑话列表
jokes = [
"为什么电脑经常生病?因为窗户(Windows)总是开着!",
"为什么数学书看起来总是很悲伤?因为它里面有太多的问题(problems)",
"为什么海洋里没有电脑?因为它们总是遇到短路(seals)",
"为什么冰块感觉很高冷?因为它的幽默感都冻结了。"
]
@eel.expose
def get_joke():
return random.choice(jokes)
@eel.expose
def say_hello(name):
return f"Hello, {name}!"
if __name__ == "__main__":
eel.init(".") #如果是文件夹,就写文件夹名字,我这里html跟python同级
eel.start("index.html", size=(400, 500))
首先感谢大佬 cnadler86 的努力,下面是地址:
https://github.com/cnadler86/micropython-camera-API
https://github.com/cnadler86/mp_esp_dl_models
两个 一个是esp32 使用摄像头, 一个用了esp-dl,将两个文件保存到你的esp32编译环境,引入这两个库即可
功能:照片拍摄、JPG图片转RGB、人员追踪、人脸识别(注册)
貌似demo就这么多
好好 大佬都喂饭了,连编译步骤都给你了
git clone https://github.com/cnadler86/mp_esp_dl_models.git
git clone https://github.com/cnadler86/micropython-camera-API.git
git clone https://github.com/cnadler86/mp_jpeg.git
cd boards/
idf.py -D MICROPY_DIR=<micropython-dir> -D MICROPY_BOARD=<BOARD_NAME> -D MICROPY_BOARD_VARIANT=<BOARD_VARIANT> -B build-<your-build-name> build
cd build-<your-build-name>
python ~/micropython/ports/esp32/makeimg.py sdkconfig bootloader/bootloader.bin partition_table/partition-table.bin micropython.bin firmware.bin micropython.uf2
RT
LUATOS貌似看上去很顺眼,虽然他们家模块有点贵,但是ESP32C3 都可以用
AIR系列的就算了 ,可用用WIFI 显示屏 GB2132,输入输出 我这里就够了,Micropython在LCD上刷汉字还是慢了点。。。。。。。。。。
OK
ML307R 通信无敌 ,UART
股票 炒股大师 233333333