如何将 javascript postData 转换为 Python 列表?

我使用 Scrapy 从页面模仿 Post Request。需要从以下摘录中获取有效载荷值。我需要postData从这个 JS 构造中获取 values( ) 到 python 列表中。

<a style="color: red;font-size: 12px;font-weight: bolder" target="_self" title="Click here for processing" onclick="return postData('714','714','null','','','TADIKONDA','0713006','TADIKONDA','','1044','EXE DNO 1046 LAND','KARLAPUDI ROSAIAH, EEDA ANJI REDDY LAND','EXE BALANCE LAND','NANDIPATI VENKATESWARLU ETC LAND','0','0','01/01/1983','25/09/2018','t','16/02/2018','1')" href="#"> Next</a>

这是什么类型的数据postData

所以,我所做的如下:

s = response.xpath("//td[@class = 'formbg1']/a/@onclick").extract()[0].split('Data')[1][1:-1].replace("'","").split(',')

它返回一个列表。然而,问题是其中一个值包含,在其中,因此它在列表中被分解为两个单独的值,这是不好的。像这个应该是单个列表值,但似乎是 2 个值。

,'KARLAPUDI ROSAIAH, EEDA ANJI REDDY LAND',

那么如何将其转换postData为 python 列表,按原样保存所有值?


婷婷同学_
浏览 210回答 1
1回答

手掌心

这不是数据类型,它是由您正在使用的页面定义的任意 javascript 函数,此处的值是单击链接时调用的该函数的参数。您可以“手动”将其解析为 json,例如像这样:my_list&nbsp;=&nbsp;json.loads('['&nbsp;+&nbsp;extracted_raw_string[16:-1].replace("'",&nbsp;'"')&nbsp;+&nbsp;']')不是很健壮,但是如果在字符串值中有额外的双引号/单引号,那么这个技巧就会失败。否则检查js2xml或slimit来解析 javascript。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python