Python 从JavaScript代码字符串中刮取特定文本

Python 从JavaScript代码字符串中刮取特定文本,python,xpath,python-requests,scrapy,Python,Xpath,Python Requests,Scrapy,我想在下面的文本中获取uuid键的值。我可以用XPATH实现这一点吗? 我从一个网站的源代码中抓取这个值 jQuery(document).ready(function ($) { var infoTemplate = Handlebars.compile($('#vehicle-person-template').html()); var summaryTemplate = Handlebars.compile($('#vehic

我想在下面的文本中获取
uuid
键的值。我可以用
XPATH
实现这一点吗? 我从一个网站的源代码中抓取这个值

        jQuery(document).ready(function ($) {
            var infoTemplate = Handlebars.compile($('#vehicle-person-template').html());
            var summaryTemplate = Handlebars.compile($('#vehicle-summary-template').html());

            axios.post("https:\/\/www.merinfo.se\/ajax\/vehicles", {
                    uuid: "21ac0674-488a-11e8-9b40-47e7b0ba95bc"                    })
                .then(function (response) {
                    $('#vehicle-info').html(infoTemplate(response.data.data));
                    $('#vehicle-summary').html(summaryTemplate(response.data.data));
                })
                .catch(function (error) {
                    $("#vehicle-info").html('<p class="font-italic mb-0">Fordonsinformation ej tillgängligt för tillfället</p>');
                    $('#vehicle-summary').html('<p class="font-italic mb-0">Fordonsinformation ej tillgängligt för tillfället</p>');
                });
        });

        jQuery(document).ready(function ($) {
            var source = $("#person-residence-template").html();
            var template = Handlebars.compile(source);

            axios.post("https:\/\/www.merinfo.se\/api\/v1\/person\/residence", {
                    uuid: "21ac0674-488a-11e8-9b40-47e7b0ba95bc"                    })
                .then(function (response) {
                    if (typeof response.data.data !== 'undefined') {
                        $('#residence-info').html(template(response.data.data));
                    } else {
                        $("#residence-info").html('<p class="font-italic mb-0">Vi saknar bostadsinformation för Björn</p>');
                    }
                })
                .catch(function (error) {
                    $("#residence-info").html('<p class="font-italic mb-0">Vi saknar bostadsinformation för Björn</p>');
                });
        });
    
jQuery(文档).ready(函数($){
var infoTemplate=handlebar.compile($(“#车辆人员模板”).html();
var summaryTemplate=handlebar.compile($(“#车辆摘要模板”).html();
axios.post(“https:\/\/www.merinfo.se\/ajax\/vehicles”{
uuid:“21ac0674-488a-11e8-9b40-47e7b0ba95bc”})
.然后(功能(响应){
$('#vehicle info').html(infoTemplate(response.data.data));
$('#车辆摘要').html(摘要模板(response.data.data));
})
.catch(函数(错误){
$(“#车辆信息”).html('p class=“font italic mb-0”>fordons information ej tillgängligt för tillfället

); $(“#车辆摘要”).html(“

fordons information ej tillgängligt för tillfället

”); }); }); jQuery(文档).ready(函数($){ var source=$(“#个人居住模板”).html(); var template=handlebar.compile(源代码); axios.post(“https:\/\/www.merinfo.se\/api\/v1\/person\/residence”{ uuid:“21ac0674-488a-11e8-9b40-47e7b0ba95bc”}) .然后(功能(响应){ if(type of response.data.data!=“未定义”){ $('#住宅信息').html(模板(response.data.data)); }否则{ $(“#居住信息”).html('p class=“font italic mb-0”>Vi saknar bostadsin信息för Björn

); } }) .catch(函数(错误){ $(“#居住信息”).html('p class=“font italic mb-0”>Vi saknar bostadsin信息för Björn

); }); });
如果将JS代码作为文本,则可以使用正则表达式获取该值

代码
重新导入
pattern=r'uuid:\s\“(.*?\””
uuids=re.findall(模式、代码和文本)
假设您在
code\u文本
变量中有代码

uuid
是包含代码中所有uuid的列表

模式解释
  • uuid:
    :文本“uuid:”
  • \s
    :后跟空格
  • \”
    :然后打开引号
  • (.*)
    :任何字符(并用这些字符组成一个组,这是您想要的值)
  • \”
    :然后是结束引号
*
后面的
用于在遇到
时停止匹配任何字符。如果不放置此
,则它将匹配到代码的最后一个


创建一个组,
findall
将给出列表中所有组的值,在本例中,所有值都在引号内,你想要的值。

你考虑使用正则表达式吗?我对正则表达式没有理解。我会用它来回答你的问题,并解释说,你真是太好了。你可以检查一下。成功了。很高兴知道:)