如何在Python中解析html源代码中的javascript代码?
我试图在一个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(
标记。但是在这个标记里面,有一个大字符串,它需要被转换,然后被解析,这样我才能得到我需要的精确数据
问题是:我不知道如何做到这一点,也找不到一个明确而令人满意的答案
代码如下:
我的目标是获取这些数据:“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)