gpt4 book ai didi

javascript - 如何从html页面中的多个脚本获取单个脚本变量数据

转载 作者:行者123 更新时间:2023-11-30 20:18:01 27 4
gpt4 key购买 nike

我有一个 html 页面,其中有几个脚本标记,但我只想要这些脚本中的一个变量数据。你可以在这里找到html页面代码

https://jsfiddle.net/9Lzc5fxy/

我只想要 var roomsAndRatePlans 变量的数据,因为但是当我执行下面的代码时,我得到了该脚本标签中的所有数据,任何人都可以帮助我解决这个问题

这里是我用来检索该数据的代码。

f = codecs.open("response.html", 'r')

samplenew = f.read()

selector = scrapy.Selector(text=samplenew, type='html')
snippet = selector.css('script:contains("roomsAndRatesData")::text').get()

jstree = js2xml.parse(snippet)

Data = js2xml.pretty_print(jstree)

但我总是从包含该变量的脚本标签中获取所有数据,因此我总是在

jstree = js2xml.parse(片段)

任何人都可以提出任何解决方案,以便我只能检索该可变数据 "var roomsAndRatePlans"

最佳答案

当我需要从 JS 代码中检索一些变量时,我总是使用正则表达式。

你可以用re_first方法实现你想要的:

import json

data_str = (selector
.css('script:contains("roomsAndRatesData")::text')
.re_first(r'var roomsAndRatePlans = (\{.*\}),'
)
data = json.loads(data_str)

data 中的对象将如下所示:

{
'propertyData': {
'bookingFeeMessageEnabled': True,
'breakfastChargeAvailable': True,
'breakfastIncludedAtProperty': False
},
'rooms': {
'24-285501': {
'locale': 'en',
'providerId': '24',
'roomTypeCode': '285501'
}
}
}

附言如果您仅将 scrapy 用于其 Selector 功能,则可以改用 parsel,这是一个 scrapy 依赖项。

关于javascript - 如何从html页面中的多个脚本获取单个脚本变量数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51722913/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com