Javascript 通过Python解析JS文件

Javascript 通过Python解析JS文件,javascript,python,parsing,Javascript,Python,Parsing,我有一个问题,如何通过Python从下面的JS文件中正确获取字段“data”的值?尝试像解析json一样进行,但对于json.load,格式不正确。所以我会感谢你的帮助 return [ { 'id' : 1, 'category' : 'html5', 'name' : { 'en' : 'XSS via formaction - requiring user interaction (1)', 'ja

我有一个问题,如何通过Python从下面的JS文件中正确获取字段“data”的值?尝试像解析json一样进行,但对于json.load,格式不正确。所以我会感谢你的帮助

return [
{
    'id'         : 1, 
    'category'   : 'html5', 
    'name'       : {
        'en' : 'XSS via formaction - requiring user interaction (1)',
        'ja' : 'formaction\u7d4c\u7531\u3067\u306eXSS - \u30e6\u30fc\u30b6\u306e\u4ecb\u5728\u304c\u5fc5\u8981',
        'ru' : 'ПаÑÑивный Ñкриптинг через formaction (1)',
        'cs' : 'XSS pomocí formaction - vyžaduje uživatelskou interakci (1)',
        'de' : '',
        'tr' : 'formaction ile XSS - kullanıcı etkileşimi gerektiren (1)',
        'zh' : '通过formaction属性进行XSS - 需è¦ç”¨æˆ·è¿›è¡Œäº¤äº’ (1)'
    },
    'data'       : '<form id="test"></form><button form="test" formaction="%js_uri_alert%">X</button>',
    'trigger'    : 'document.getElementsByTagName("button")
    'urls'    : ['http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#attr-fs-formaction'],
    'howtofix'   : {
        'en' : 'Don\'t allow users to submit markup containing "form" and "formaction" attributes or transform them to bogus attributes. Avoid "id" attributes for forms as well as submit buttons.',
    'ja' : '\u0022form\u0022\u3068\u0022formaction\u0022\u5c5e\u6027\u3092\u542b\u3080\u8981\u7d20\u3092\u30e6\u30fc\u30b6\u306b\u5165\u529b\u3055\u305b\u306a\u3044\u3001\u3042\u308b\u3044\u306f\u305d\u308c\u3089\u306e\u5c5e\u6027\u3092\u7121\u52b9\u306a\u5024\u306b\u5909\u63db\u3059\u308b\u3053\u3068\u3002\u0022id\u0022\u5c5e\u6027\u306fform\u3060\u3051\u3067\u306a\u304fsubmit\u30dc\u30bf\u30f3\u306b\u3064\u3044\u3066\u3082\u5bfe\u5fdc\u3059\u308b\u3053\u3068\u3002',
        'ru' : 'Ðе разрешайте пользовательÑкую разметку, Ñодержащую атрибуты form и formaction или неправильные Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ñтих атрибутов. Избегайте атрибут id в формах, как и Ñлементы ввода submit типа.',
        'cs' : 'Nedovolte uživatelům vložit kód obsahující atributy "form" a "formaction" Äi jejich "zkomolené" tvary. VyhnÄ›te se atributu "id" u formulářů i u odesílacích tlaÄítek.',
        'de' : '',
        'tr' : 'Kullanıcıların "form" ve "formaction" markup\'larını yollamaları engellenmeli veya bu özellikler kullanışsız hale getirilmelidir. Submit butonlarında olduğu gibi formlarda "id" özelliklerinden kaçının.',
        'zh' : 'ä¸è¦è®©ç”¨æˆ·æäº¤åŒ…å« "form" å’Œ "formaction"å±žæ€§çš„æ ‡ç­¾.é¿å…在form中出现id属性åŠæ交按钮.'
    },
    'browsers'   : {
        'firefox' : ['4.0', 'latest'],
        'opera': ['10.5', 'latest'], 
        'chrome': ['10.0', 'latest'],
        'safari' : ['4.0.4', 'latest'],
        'internet explorer' : ['10', 'latest (inside form element)']
    },
    'tags'       : ['xss', 'html5', 'opera', 'chrome', 'firefox', 'formaction', 'javascript', 'button'],
    'reporter'   : '.mario'
}
]
返回[
{
“id”:1,
“类别”:“html5”,
“姓名”:{
“en”:“XSS通过功能-需要用户交互(1)”,
“ja”:“formaction\u7d4c\u7531\u3067\u306eXSS-\u30e6\u30fc\u30b6\u306e\u4ecb\u5728\u304c\u5fc5\u8981”,
“ru”:“ru”:“ru”形式(1),
‘cs’:‘XSS pomocÃ-formation-vyžaduje užIvatellskou interakci(1)’,
“德”:“,
‘tr’:‘XSS-kullanıcıetkileŸimi gerektiren(1)’形式,
‘zh’:‘形式’
},
“数据”:“X”,
“触发器”:“document.getElementsByTagName(“按钮”)
“URL”:['http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#attr-fs formaction'],
“howtofix”:{
“en”:“不允许用户提交包含“form”和“formaction”属性的标记或将其转换为虚假属性。避免表单和提交按钮的“id”属性。”,
“ja”以下“中国”的“ja”是“以下以下”的以下“中国”的以下“中国”的以下“中国”的以下“中国”的以下“中国”的以下“中国”的以下“中国”的以下“中国”的以下“中国”的以下“中国”的以下“中国”的以下“中国”的以下以下“中国”的以下“中国的以下以下以下“中国”的“中国的以下以下以下“中国的”的“中国的以下以下以下以下以下以下以下以下“中国的”的”的“中国的以下以下以下以下以下的“中国的”的“中国的”是是是是:中国的以下以下以下以下以下以下以下以下的“中国的“中国的“中国的以下以下以下以下以下以下以下的“中国的”中国的“中国的“中国的以下以下以下以下以下以下以下以下的“中国的“中国的“中国的以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下的”的“中国的“中国的”的“中国的”59\u308b\u3053\u3068\u3002\u0022id\u0022\u5c5e\u6027\u306fform\u3060\u3051\u3067\u306a\u304fsubmit\u30dc\u30bf\u30f3\u306b\u3064\u3044\u3066\u3082\u5bfe\u5fdc\u3059\u308b\u3053\u3068\u3002',
“俄罗斯”的“鲁”语:“卢卢卢卢布镇::““208卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢卢自2088月8日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日的日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日汔ÐÐнÐ自2008年年月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日“提交”,
‘cs’:‘Nedovolte uživatelÅm vloÅit kÃd obsahujÃcÃatributo’form“a”formation“i jejich”zkomenÔtvary.VyhnÄ›te se atributu”id“u formul”™Åu odesÃlacÃch tlaÃtek.',
“德”:“,
‘tr’:‘KullanÄ’、‘cÄ’、‘larÄ’、‘nÄ’、‘YollamalÄ’、‘Engelenmeli’和‘zellikler Kullanޮޮ’和‘z hale Getirimelidir’形式的“动作”标记‘larÄ’、‘nޮޮ’、‘Yollamalޮ’、‘Engelenmeli veya buޤ’、‘zellikler Kullarޮޮ’和‘z hale Getirlmelimelidir。提交Butonlarda’表格,
‘zh’:‘ä184;èèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèè
},
“浏览器”:{
“firefox”:[“4.0”,“最新版本”],
“opera”:[10.5”,“最新版本],
“chrome”:[10.0”,“最新版本],
“safari”:[4.0.4”,“最新版本],
'internet explorer':['10','最新版本(内部表单元素)']
},
'标签':['xss','html5','opera','chrome','firefox','formaction','javascript','button'],
“记者”:“马里奥先生”
}
]

非常感谢。

您可以查看JavaScript解析器,如(工作示例)。或者,您也可以使用以下命令提取
数据
键值:


它有语法错误<代码>'trigger':'document.getElementsByTagName(“按钮”)应以
结尾,

如果这是固定的,并且您从一开始就删除了
return
,那么可以获得如下数据

import ast

struct = ast.literal_eval(your_string)
data = struct[0]['data']

但是对于json.load,它的格式不正确
它显示了什么错误?您是否尝试过
json.replace(“”、“\\”).replace(“”、“\”)
-it(将双引号替换为
\“
并将单引号替换为双引号以匹配json要求)?逐行读取并查找字符串“数据”.字符编码看起来有误
import ast

struct = ast.literal_eval(your_string)
data = struct[0]['data']