繁体   English   中英

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

[英]How do I convert javascript postData to Python list?

我使用 Scrapy 从页面模仿 Post Request。 需要从以下摘录中获取有效载荷值。 我需要从这个 JS 构造中获取值( postData )到 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 列表, postData保存所有值?

这不是数据类型,它是由您正在使用的页面定义的任意 javascript 函数,此处的值是单击链接时调用的该函数的参数。 您可以“手动”将其解析为 json,例如像这样:

my_list = json.loads('[' + extracted_raw_string[16:-1].replace("'", '"') + ']')

不是很健壮,但如果在字符串值中有额外的双引号/单引号,则会失败。 否则检查js2xmlslimit来解析 javascript。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM