为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

婷婷同学_ 2021-06-18 05:19:37
我使用 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 列表,按原样保存所有值?
查看完整描述

1 回答

?
手掌心

TA贡献1942条经验 获得超3个赞

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

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

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


查看完整回答
反对 回复 2021-06-29
  • 1 回答
  • 0 关注
  • 206 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信