如何在Python中解析html源代码中的javascript代码?

如何在Python中解析html源代码中的javascript代码?,javascript,python,json,ajax,web-scraping,Javascript,Python,Json,Ajax,Web Scraping,我试图在一个HTML源代码中的JavaScript标记中获取一些数据 情况:我可以找到相应的标记。但是在这个标记里面,有一个大字符串,它需要被转换,然后被解析,这样我才能得到我需要的精确数据 问题是:我不知道如何做到这一点,也找不到一个明确而令人满意的答案 代码如下: 我的目标是获取这些数据:“xe7fd4c285496ab91”,这是内容的标识号,也称为“contentId” 我尝试使用json.parse(),但不起作用: import json jsonparsed=json.parse(

我试图在一个HTML源代码中的JavaScript标记中获取一些数据

情况:我可以找到相应的
标记。但是在这个标记里面,有一个大字符串,它需要被转换,然后被解析,这样我才能得到我需要的精确数据

问题是:我不知道如何做到这一点,也找不到一个明确而令人满意的答案

代码如下:

我的目标是获取这些数据:
“xe7fd4c285496ab91”
,这是内容的标识号,也称为
“contentId”

我尝试使用
json.parse()
,但不起作用:

import json
jsonparsed=json.parse(item)
获取此错误:

AttributeError: 'NavigableString' object has no attribute 'json'
我的问题是: 如何获得所需的数据? 是否有一个函数将字符串转换为javascript以便我可以解析它?还是将此字符串转换为JSON文件的方法


(请记住,我将使用类似的HTML/JavaScript在多个链接上执行此操作)。

您可以只在文本上使用正则表达式,而不必搜索脚本

import re
import requests

r = requests.get('https://www.khanacademy.org/computing/computer-programming/programming/drawing-basics/pt/making-drawings-with-code')
p = re.compile(r'contentId":"((?:(?!").)*)')  
i = p.findall(r.text)[0]
print(i)
正则表达式


即使与另一个模块链接也能完美工作。谢谢你的解释!您是否有更多的资源来了解这是如何工作的?和
import re
import requests

r = requests.get('https://www.khanacademy.org/computing/computer-programming/programming/drawing-basics/pt/making-drawings-with-code')
p = re.compile(r'contentId":"((?:(?!").)*)')  
i = p.findall(r.text)[0]
print(i)