使用python从javascript var中提取数据

我是python,BeautifulSoup等新手
我想提取网站“script”标签中javascript变量内的json数据.

这是我现在的代码:

import re
from bs4 import BeautifulSoup
import json
import requests
url = 'myUrl'
page = requests.get(url).content
soup = BeautifulSoup(page, "html.parser")
pattern = re.compile(r"var hours = .")
script = soup.find("script",text=pattern)
print(script)

现在我可以用以下格式提取数据:

<script>
var hours = [{...dataIwant...}];
<\script>

但我只想要没有“script”或“var hours =”的数据.我想在json中更改它并将其放在apache nifi中.

我已经尝试了几乎所有我在这里和谷歌上找到的东西.但是大多数时候,当我尝试提取变量并将其更改为json格式时,我有“无”或其他错误.

所以如果你有一些技巧可以帮助我以json格式获取数据,那就太棒了!

谢谢 !

最佳答案
如果使用了soup.find()后“script”是一个字符串
你可以使用正则表达式来获得你需要的部分.
像这样的东西可以工作.

m = re.search('var hours = (.+)[,;]{1}', script)
if m:
    found = m.group(1)

见:How to extract a substring from inside a string in Python?

转载注明原文:使用python从javascript var中提取数据 - 代码日志