我正在尝试使用EEL从Python将数据发送到JavaScript,但根据他们的文档,似乎无法正常工作...... 我在我的HTML / JS页面中一直得到null。
这是我所拥有的。 基本上,我想获取BING壁纸的链接并在我的页面中用作背景。 但在那之前,我要先获取结果。
BING Py脚本:
import bs4
import requests
import json
def scrape_bing():
BASE_PATH = 'http://www.bing.com'
BASE_REST = '/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=en-US'
URL = BASE_PATH + BASE_REST
r = requests.get(url=URL)
if r.status_code == 200:
data = r.json()
wallpaper_path = BASE_PATH + data['images'][0]['url']
print(wallpaper_path)
else:
raise ValueError("[ERROR] non-200 response from Bing server for '{}'".format(URL))
def main():
scrape_bing()
if __name__ == '__main__':
main()
脚本运行正常,Python控制台返回了我的URL。 我的main.py带有EEL,代码如下:
import eel
from inc.bing import scrape_bing
eel.init('web')
myDef = scrape_bing()
@eel.expose
def bingR():
return myDef
try:
eel.start('index.html', mode='chrome', host='localhost', port=8274)
except (SystemExit, MemoryError, KeyboardInterrupt):
pass
print ('Closed browser log...!')
我已经像他们的示例那样使用了异步命令,例如:
<script type="text/javascript" src="/eel.js"></script>
<script type="text/javascript">
async function run() {
let n = await eel.bingR()();
console.log('Got this from Python: ' + n);
}
run();
</script>
请帮助我理解这一切是如何运作的。