selenium python excecute_脚本(“返回变量”)不返回变量,但变量存在

2024-09-30 16:37:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用selenium从javascript代码中获取变量,但是driver.excecute_script('return videos')没有找到变量,尽管它存在,因为我在运行脚本之前打印了源代码

wait = WebDriverWait(driver, 10)

driver.get(url)

wait.until(presence_of_element_located((By.TAG_NAME, "body")))

result = driver.execute_script('return videos')

print(result)

这意味着在运行driver.excecute_sc...之前应该加载整个页面。控制台按预期输出整个页面:

<html class=" flexbox no-flexboxtweener" lang="es"><head>
<meta charset="utf-8">
<title>Majutsushi Orphen Hagure Tabi: Kimluck-hen Episodio 1 Sub Español — AnimeFLV</title>
<meta name="description" content="Ver Majutsushi Orphen Hagure Tabi: Kimluck-hen Episodio 1 Sub Español, descargar Majutsushi Orphen Hagure Tabi: Kimluck-hen Episodio 1 gratis, Majutsushi Orphen Hagure Tabi: Kimluck-hen Episodio 1 en calidad HD.">
<meta property="og:title" content="Majutsushi Orphen Hagure Tabi: Kimluck-hen Episodio 1">
<meta property="og:url" content="/ver/majutsushi-orphen-hagure-tabi-kimluckhen-1">
<meta property="og:image" content="https://cdn.animeflv.net/screenshots/3427/1/3.jpg">
<meta property="og:site_name" content="AnimeFLV">
<meta property="og:description" content="Estoy viendo Majutsushi Orphen Hagure Tabi: Kimluck-hen Episodio 1 Completo en Calidad HD, completamente Gratis!">
<link rel="canonical" href="https://www3.animeflv.net/ver/majutsushi-orphen-hagure-tabi-kimluckhen-1">
<link rel="alternate" media="only screen and (max-width: 640px)" href="https://m.animeflv.net/ver/majutsushi-orphen-hagure-tabi-kimluckhen-1">
<meta name="robots" content="index, nofollow">
<link href="https://fonts.googleapis.com/css?family=Open+Sans:400,300,700,400italic" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="/assets/animeflv/css/font-awesome.css">
<link rel="stylesheet" type="text/css" href="/assets/animeflv/css/css.css?v=1.2.6">
<link rel="stylesheet" type="text/css" href="/assets/animeflv/css/bootstrap.css">
<script type="text/javascript" charset="UTF-8" src="https://consentcdn.cookiebot.com/consentconfig/9466b52c-dbbb-463c-ac6c-b176877cab25/www3.animeflv.net/configuration.js"></script><script type="text/javascript" src="/assets/animeflv/js/modernizr.js"></script>
<script src="https://apis.google.com/js/platform.js" gapi_processed="true"></script>
<meta name="verify-admitad" content="34e2b77cc8">
<meta content="es" http-equiv="content-language">
<meta content="es" name="language">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta property="fb:app_id" content="1730508916998105">
<link rel="manifest" href="/manifest.json">
<script id="Cookiebot" src="https://consent.cookiebot.com/uc.js" data-cbid="9466b52c-dbbb-463c-ac6c-b176877cab25" data-blockingmode="auto" type="text/javascript"></script>
<script src="https://https-animeflv-net.disqus.com/embed.js" data-timestamp="1611535630399"></script></head>
<body>
<div id="fb-root"></div>
<script defer="" crossorigin="anonymous" src="https://connect.facebook.net/es_LA/sdk.js#xfbml=1&amp;version=v6.0&amp;appId=1730508916998105&amp;autoLogAppEvents=1" type="text/plain"></script>
<script src="/js/ads.js" type="text/javascript"></script>

<div class="Wrapper">

<header class="Header">
<div class="Mid">
<div class="Container">
<div class="AX Row AFluid">
<div class="Logo">
<a href="/"><img src="/assets/animeflv/img/logo.png?v=2.3" alt="AnimeFLV"></a>
</div>
<div class="AFixed">
<input type="checkbox" id="BtnMenu" hidden="hidden">
<label for="BtnMenu" class="BtnMenu fa-bars"><span>MENU</span></label>
<nav class="CX Row">
<input type="checkbox" id="Hd-Search" hidden="hidden">
<div class="Search"> 
<form action="/browse" method="get">
<input name="q" type="text" id="search-anime" autocomplete="off" placeholder="Buscar...">
<button><i class="fa-search"></i></button>
</form>
<div class="DpdwCnt TtCn">
<ul class="ListResult"></ul>
</div>
</div>
<div class="Login">
<input type="checkbox" id="DpdwLnk-Login" hidden="hidden">
<label for="DpdwLnk-Login" class="Button"><span class="fa-user">Login</span></label>
<div class="DpdwCnt TtCn">
<div class="Title">INICIAR SESION</div>
<form action="/auth/sign_in" class="form-horizontal" method="POST"> <label class="Form-Icon Right">
<input name="email" type="text" placeholder="E-Mail">
<i class="fa-user"></i>
</label>
<label class="Form-Icon Right">
<input name="password" type="password" placeholder="Contraseña">
<input type="hidden" name="remember_me" value="1">
<i class="fa-lock"></i>
</label>
<button type="submit">INICIAR SESIÓN</button>
<a href="/auth/facebook/sign_in" rel="nofollow" class="Button fb_login"><span class="fa-facebook">INICIAR SESION CON FB</span></a>
<div class="Links">
<a href="/auth/sign_up" rel="nofollow">Registrate</a>
<a href="/auth/password/new" rel="nofollow">¿Olvidaste tu contraseña?</a>
</div>
</form> </div>
</div>
<ul class="Menu">
<li><a href="/">Inicio</a></li>
<li><a href="/browse">Directorio Anime</a></li>
</ul>
<ul class="ListSocial BFixed">
<li><a href="https://www.facebook.com/AnimeFLV/" rel="nofollow" target="_blank" class="fa-facebook"></a></li>
</ul>
</nav>
</div>
</div>
</div>
</div>
</header>


<div class="Body">
<div class="Container">
<div class="CpCn ClFx" id="XpndCn">
<div class="CpCnA">
<span class="lgtbx"></span>
<nav class="Brdcrmb fa-home">
<a href="/" title="Inicio AnimeFLV">Inicio</a> <i class="fa-caret-right"></i> <a href="/anime/majutsushi-orphen-hagure-tabi-kimluckhen">Majutsushi Orphen Hagure Tabi: Kimluck-hen</a> <i class="fa-caret-right"></i> <strong>Majutsushi Orphen Hagure Tabi: Kimluck-hen Episodio 1</strong>
</nav>

<div class="CapiTop">
<h1 class="Title" title="Majutsushi Orphen Hagure Tabi: Kimluck-hen Episodio 1">Majutsushi Orphen Hagure Tabi: Kimluck-hen Episodio 1</h1>
<h2 class="SubTitle">Episodio 1</h2>
<div class="lang-op"></div>
</div>


<ul class="CapiTnv nav nav-pills" role="tablist" data-toggle="pills"></ul>

<div class="CapiTcn tab-content">
<div role="tabpanel" class="tab-pane active" id="video_box" style="background: #000; color: #fff;">
Actualmente no hay vídeos
</div>
</div>
</div>
<div class="CpCnB">
<div class="CapOptns ClFx show">
<div class="CapNv">
<a href="/anime/majutsushi-orphen-hagure-tabi-kimluckhen" class="CapNvLs fa-th-list"></a>
</div>
<a href="#" class="BtnNw Rprt BxSdw fa-flag-o" data-toggle="modal" data-target="#ReportModal"><span>REPORTAR</span> Episodio</a>
<a href="#" class="BtnNw CVst BxSdw fa-eye" data-toggle="tooltip" title="Visto" data-seen="1"></a>
<span class="BtnNw Clgt BxSdw lgtbx-lnk fa-lightbulb-o" data-toggle="tooltip" title="Apagar las luces"></span>
<span class="BtnNw Xpnd BxSdw AAShwHdd-lnk" data-shwhdd="XpndCn"><i class="fa-expand" data-toggle="tooltip" title="Expandir"></i><i class="fa-compress" data-toggle="tooltip" title="Comprimir"></i></span>
<span class="BtnNw Dwnd BxSdw fa-download AAShwHdd-lnk" data-shwhdd="DwsldCn"><span>DESCARGAR</span> Episodio</span>
</div>
<div class="WdgtCn DwsldCn" id="DwsldCn">
<div class="DwsldCnTbl">
<table class="RTbl Dwnl">
<thead>
<tr>
<th>SERVIDOR</th>
<th>TAMAÑO</th>
<th>FORMATO</th>
<th>DESCARGAR</th>
</tr>
</thead>
<tbody>
<tr><td>Zippyshare</td><td><strong>MP4</strong></td><td>SUB</td><td><a target="_blank" rel="nofollow" href="https://www56.zippyshare.com/v/7pBAcDSp/file.html" class="Button Sm fa-download">DESCARGAR</a></td></tr><tr><td>MEGA</td><td><strong>MP4</strong></td><td>SUB</td><td><a target="_blank" rel="nofollow" href="https://mega.nz/#!zNsjhQYZ!wLaK9MyiCpUvDifBdDrmL1CDaxvtRkQoENFdZmCfuRM" class="Button Sm fa-download">DESCARGAR</a></td></tr><tr><td>Stape</td><td><strong>MP4</strong></td><td>SUB</td><td><a target="_blank" rel="nofollow" href="https://streamtape.com/v/0L1paadjqjIbGBk/" class="Button Sm fa-download">DESCARGAR</a></td></tr> </tbody>
</table>
</div>
</div>
<div class="ShrCnB fa-share-alt">
<div class="Title">COMPARTIR</div>
<p>Ayuda a la web dandole like a nuestras redes sociales</p>
<div style="position: absolute; right: 0;top: 0px;">
<div class="addthis_inline_share_toolbox"></div>
</div>
</div>
<div class="WdgtCn">
<div class="Top">
<div class="Title">Comentarios</div>
</div>
<div id="disqus_thread"></div>
<script type="text/javascript">
                    var disqus_config = function () {
                        this.page.url = 'https://www3.animeflv.net/ver/majutsushi-orphen-hagure-tabi-kimluckhen-1';
                        this.page.identifier = 'episode_57398';
                    };

                    (function() { // DON'T EDIT BELOW THIS LINE
                    var d = document, s = d.createElement('script');
                    s.src = 'https://https-animeflv-net.disqus.com/embed.js';
                    s.setAttribute('data-timestamp', +new Date());
                    (d.head || d.body).appendChild(s);
                    })();
                    </script>
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</div>
</div>
<div class="CpCnC">
<a href="https://www.facebook.com/AnimeFLV/" target="_blank"><img alt="Facebook FLV" src="https://animeflv.net/assets/animeflv/img/facebook-animeflv-oficial.png"></a>
<br><br>
<a href="https://twitter.com/somoskudasai" target="_blank" rel="nofollow"><img alt="Twitter Kudasai" src="https://animeflv.net/assets/animeflv/img/twitter-kudasai-oficial.png"></a>
<br><br>
<section class="WdgtCn">
<div class="Top">
<div class="Title">Noticias de Anime</div>
</div>
<ul class="ListNews" id="Kudasai">
</ul>
</section>

</div>
</div>
</div>
</div>


<footer class="Footer">
<div class="Container">
<div class="BX Row BFluid Sp20 NMb">
<div><p><span>Anime Online</span> - Ningún vídeo se encuentra alojado en nuestros servidores.</p>
<nav class="mnftxt">
<a href="/condiciones-de-uso.html">Términos y Condiciones</a>
<a href="/politica-de-privacidad.html">Política de Privacidad</a>
<a href="/sobre-animeflv.html">Sobre AnimeFLV</a>
</nav>
</div>
<ul class="ListSocial BFixed">
<li><a href="https://www.facebook.com/AnimeFLV/" target="_blank" class="fa-facebook"></a></li>
<li><a href="https://www.youtube.com/c/kudasai" target="_blank" class="fa-youtube"></a></li>
</ul>
</div>
</div>
</footer>


<div class="modal fade" id="ReportModal" tabindex="-1" role="dialog" aria-labelledby="ReportModal">
<div class="modal-dialog" role="document">
<div class="Sect">
<div class="Top fa-flag">Reportar <a href="#" class="close fa-times" data-dismiss="modal" aria-label="Close"></a></div>
<div class="Bod" style="padding: 20px;" id="report_body">
<div class="form-group">
<label for="report_reason">Motivo:</label>
<select class="form-control" id="report_reason">
<option value="0">No Reproduce</option>
<option value="1">Problemas de Audio</option>
<option value="2">Problemas con Subtitulos</option>
<option value="3">No es el episodio</option>
</select>
</div>
<div class="form-group">
<label for="report_comment">Explicanos el problema:</label>
<textarea class="form-control" id="report_comment"></textarea>
</div>
<button type="submit" class="btn btn-default" id="report_submit">Enviar Reporte</button>
</div>
</div>
</div>
</div>
</div>


<script type="text/javascript">var is_user = false;</script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js" type="text/javascript"></script>
<script type="text/plain" src="/assets/animeflv/js/jquery.typewatch.min.js"></script>
<script type="text/plain" src="/assets/animeflv/js/scrlbr.js"></script>
<script type="text/plain" src="/assets/animeflv/js/jquery.bxslider.min.js"></script>
<script type="text/plain" src="/assets/animeflv/js/percircle.min.js"></script>
<script type="text/plain" src="/assets/animeflv/js/funciones.js?v=1.1.20"></script>
<script type="text/plain" src="/assets/animeflv/js/bootstrap.min.js"></script>
<script type="text/plain" src="/assets/animeflv/js/alertify.js"></script>
<!--[if lt IE 9]><script type="text/javascript" src="/assets/animeflv/js/ie/css3mq.js"></script>
<![endif]-->
<!--[if lte IE 9]><script type="text/javascript" src="/assets/animeflv/js/ie/ie.js"></script>
<![endif]-->
 <script type="text/plain" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-5c3ecfc670146b84" async="async"></script>
<script type="text/plain">
        var anime_id = 3427;
        var episode_id = 57398;
        var episode_number = 1;

        var in_library  = 0;
        var latest_seen = 0;

        var videos = {"SUB":[{"server":"gocdn","title":"GoCDN","allow_mobile":true,"code":"https:\/\/streamium.xyz\/gocdn.html#djVSek1aTjVMczY1djhRamgxSlMyWUo2SmdPcm9oQzZSSTlEWXdGK3J6NUxzOGZJT0VKa0ZUekdMcVRyMnd6QmxzUnlQL1ZIMzhNTFBWMHQ2Z1JnRlBTelE0R3p2blcrdXk0aUNoUDl3ZmlwSk5OUE5GelZ4RWlIV1RzcWpLOWVNOXBNU2VvWDZRTER0K092NnZVV2RBPT0="},{"server":"fembed","title":"Fembed","allow_mobile":true,"code":"https:\/\/embedsito.com\/v\/x431gb5q0rq76j-"},{"server":"mega","title":"MEGA","url":"https:\/\/mega.nz\/#!zNsjhQYZ!wLaK9MyiCpUvDifBdDrmL1CDaxvtRkQoENFdZmCfuRM","allow_mobile":true,"code":"https:\/\/mega.nz\/embed#!zNsjhQYZ!wLaK9MyiCpUvDifBdDrmL1CDaxvtRkQoENFdZmCfuRM"},{"server":"stape","title":"Stape","url":"https:\/\/streamtape.com\/v\/0L1paadjqjIbGBk\/","allow_mobile":true,"code":"https:\/\/streamtape.com\/e\/0L1paadjqjIbGBk\/"},{"server":"okru","title":"Okru","allow_mobile":true,"code":"https:\/\/ok.ru\/videoembed\/2285656869488"},{"server":"yu","title":"YourUpload","allow_mobile":true,"code":"https:\/\/www.yourupload.com\/embed\/2RDn1lPlb34g"},{"server":"maru","title":"Maru","allow_mobile":true,"code":"https:\/\/my.mail.ru\/video\/embed\/8995617145282897508#budyak.rus#9828"},{"server":"netu","title":"Netu","allow_mobile":true,"code":"https:\/\/hqq.tv\/player\/embed_player.php?vid=RDI2aFFpeThJUGdWVDBhVDhVaXUydz09"}]};
// var videos = [];
        $(document).ready(function() {
            initEpisode();

            $.getJSON("/kudasai.php", function( data ) {
                var items = '';
                $.each( data, function( key, val ) {
                    var pslug = 'https://somoskudasai.com/' + val.category.slug + '/' + val.slug + '/';
                    var cslug = 'https://somoskudasai.com/categoria/'+ val.category.slug +'/';

                    items += '<li><article class="NwBxCn"><a target="_blank" href="' + pslug + '"><figure><img src="' + val.image + '" alt=""><span>' + val.date + '</span></figure></a> <h3 class="Title"><a target="_blank" href="' + pslug + '">' + val.title + '</a></h3><a target="_blank" href="' + cslug + '" class="CatLnk">' + val.category.name + '</a></article></li>';
                });

                $('#Kudasai').append(items);
            });

        });
    </script>
<script type="text/plain">
        if( window.loadingAds === undefined ){
            document.getElementById("fbcomb").innerHTML = '<img src="/imgs/adblock_fb.png" alt="Comentarios Bloqueados por Adblock">';
        }
    </script>

<script type="text/plain">
var _qevents = _qevents || [];

(function() {
var elem = document.createElement('script');
elem.src = (document.location.protocol == "https:" ? "https://secure" : "http://edge") + ".quantserve.com/quant.js";
elem.async = true;
elem.type = "text/javascript";
var scpt = document.getElementsByTagName('script')[0];
scpt.parentNode.insertBefore(elem, scpt);
})();

_qevents.push({
qacct:"p--mN3UcHCw6ueQ"
});
</script>
<noscript>
<div style="display:none;">
<img src="//pixel.quantserve.com/pixel/p--mN3UcHCw6ueQ.gif" border="0" height="1" width="1" alt="Quantcast"/>
</div>
</noscript>

<script id="dsq-count-scr" src="//https-animeflv-net.disqus.com/count.js" async="" type="text/plain"></script>
<script src="/js/detector.js?v=1.0.1" type="text/plain"></script>

<iframe style="display: none; position: absolute; width: 1px; height: 1px; top: -9999px;" name="__uspapiLocator" tabindex="-1" role="presentation" aria-hidden="true" title="Blank"></iframe><iframe style="position: absolute; width: 1px; height: 1px; top: -9999px;" tabindex="-1" role="presentation" aria-hidden="true" title="Blank" src="https://consentcdn.cookiebot.com/sdk/bc-v2.min.html"></iframe></body></html>

如您所见,变量videos是指定的,它实际上是一个字典

var videos = {"SUB":[{"server":"gocdn","title":"GoCDN","allow_mobile":true,"code":"https:\/\/streamium.xyz\/gocdn.html#djVSek1aTjVMczY1djhRamgxSlMyWUo2SmdPcm9oQzZSSTlEWXdGK3J6NUxzOGZJT0VKa0ZUekdMcVRyMnd6QmxzUnlQL1ZIMzhNTFBWMHQ2Z1JnRlBTelE0R3p2blcrdXk0aUNoUDl3ZmlwSk5OUE5GelZ4RWlIV1RzcWpLOWVNOXBNU2VvWDZRTER0K092NnZVV2RBPT0="},{"server":"fembed","title":"Fembed","allow_mobile":true,"code":"https:\/\/embedsito.com\/v\/x431gb5q0rq76j-"},{"server":"mega","title":"MEGA","url":"https:\/\/mega.nz\/#!zNsjhQYZ!wLaK9MyiCpUvDifBdDrmL1CDaxvtRkQoENFdZmCfuRM","allow_mobile":true,"code":"https:\/\/mega.nz\/embed#!zNsjhQYZ!wLaK9MyiCpUvDifBdDrmL1CDaxvtRkQoENFdZmCfuRM"},{"server":"stape","title":"Stape","url":"https:\/\/streamtape.com\/v\/0L1paadjqjIbGBk\/","allow_mobile":true,"code":"https:\/\/streamtape.com\/e\/0L1paadjqjIbGBk\/"},{"server":"okru","title":"Okru","allow_mobile":true,"code":"https:\/\/ok.ru\/videoembed\/2285656869488"},{"server":"yu","title":"YourUpload","allow_mobile":true,"code":"https:\/\/www.yourupload.com\/embed\/2RDn1lPlb34g"},{"server":"maru","title":"Maru","allow_mobile":true,"code":"https:\/\/my.mail.ru\/video\/embed\/8995617145282897508#budyak.rus#9828"},{"server":"netu","title":"Netu","allow_mobile":true,"code":"https:\/\/hqq.tv\/player\/embed_player.php?vid=RDI2aFFpeThJUGdWVDBhVDhVaXUydz09"}]};

但是当获取变量并将其存储在result变量上时,我得到了一个javascript异常

Message: ReferenceError: videos is not defined

是否有其他方法获取变量


Tags: texthttpsdivsrccomtitletypejs
1条回答
网友
1楼 · 发布于 2024-09-30 16:37:22

变量videos从未创建,因为它是在type="text/plain"脚本中创建的。以下是解决方案:

步骤1:查找脚本。

该脚本是从最后一个到第一个的第四次计数

scripts = driver.find_elements_by_tag("script")

步骤2:获取内部HTML

由于.text方法只返回元素的可见部分,因此请使用innerHTML属性

code = scripts[len(scripts) - 5].get_attribute("innerHTML")

步骤3:找到声明变量的行

现在,您必须获得声明变量的行。首先使用.split()方法拆分变量代码

lines = code.split('\n')

变量在第9行声明

declaration = lines[8]

步骤4:返回变量值

现在,只需删除所有,直到值

dictionary = declaration[len('        var videos = '):] # spaces because of tabs

然后返回字典,将其转换为python代码

result = driver.execute_script('return ' + dictionary)

这会回来的

{"SUB":[{"server":"gocdn","title":"GoCDN","allow_mobile":True,"code":"https:\/\/streamium.xyz\/gocdn.html#djVSek1aTjVMczY1djhRamgxSlMyWUo2SmdPcm9oQzZSSTlEWXdGK3J6NUxzOGZJT0VKa0ZUekdMcVRyMnd6QmxzUnlQL1ZIMzhNTFBWMHQ2Z1JnRlBTelE0R3p2blcrdXk0aUNoUDl3ZmlwSk5OUE5GelZ4RWlIV1RzcWpLOWVNOXBNU2VvWDZRTER0K092NnZVV2RBPT0="},{"server":"fembed","title":"Fembed","allow_mobile":True,"code":"https:\/\/embedsito.com\/v\/x431gb5q0rq76j-"},{"server":"mega","title":"MEGA","url":"https:\/\/mega.nz\/#!zNsjhQYZ!wLaK9MyiCpUvDifBdDrmL1CDaxvtRkQoENFdZmCfuRM","allow_mobile":True,"code":"https:\/\/mega.nz\/embed#!zNsjhQYZ!wLaK9MyiCpUvDifBdDrmL1CDaxvtRkQoENFdZmCfuRM"},{"server":"stape","title":"Stape","url":"https:\/\/streamtape.com\/v\/0L1paadjqjIbGBk\/","allow_mobile":true,"code":"https:\/\/streamtape.com\/e\/0L1paadjqjIbGBk\/"},{"server":"okru","title":"Okru","allow_mobile":True,"code":"https:\/\/ok.ru\/videoembed\/2285656869488"},{"server":"yu","title":"YourUpload","allow_mobile":True,"code":"https:\/\/www.yourupload.com\/embed\/2RDn1lPlb34g"},{"server":"maru","title":"Maru","allow_mobile":True,"code":"https:\/\/my.mail.ru\/video\/embed\/8995617145282897508#budyak.rus#9828"},{"server":"netu","title":"Netu","allow_mobile":True,"code":"https:\/\/hqq.tv\/player\/embed_player.php?vid=RDI2aFFpeThJUGdWVDBhVDhVaXUydz09"}]}

相关问题 更多 >