用靓汤查找和获取数据

2024-04-23 08:53:16 发布

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

我想用Python和Beautifulsoup4刮一个电视台的网站。你知道吗

我读到的整个站点的URL是:http://www.tve.es/alacarta/videos/aguila-roja/

我用命令html = soup.find_all("div", class_="extra mark")提取包含有趣信息的段落:显示的季节数和每个季节的简短描述。你知道吗

在原始页面的HTML中,此部分如下所示:

  1. 如何确定季节数?我想一定是在搜索<p class="ladillo">对象或<span>Season xy</span>对象的数量(长度)的时候。

  2. 如何提取每个季节的描述/摘要?特别是因为前两个季节包含一个类似<span style>的标记,但其余季节没有这个标记。此外,整个<p>让我困惑。。。

(直到现在,我只使用正则表达式,在正式的bs文档中找不到处理我的问题的信息)。你知道吗

<div class="extra mark">
    <p></p>
    <p>
      "Introduction with text"
    </p>
    <p>
       <span style=light-height: 1.6em;">
        "Another words for introduction"
       </span>
    </p>
    <p>
      "Final part of introduction"
    </p>
    <p>
       <strong style="color: rgb(51, 102, 255); line-heigt: 20.8px;">
         "This content is not available in the United States and Canada"
       </strong>
    </p>
    <p></p>
    <h3>
      <p class="ladillo">
        <span>Season 1</span>
      </p>
    </h3>
    <p></p>
    <p>
        <span style>
         "Description of season 1"
        </span>
    </p>
    <p></p>
    <p></p>
    <h3>
      <p class="ladillo">
        <span>Season 2</span>
      </p>
    </h3>
    <p></p>
    <p>
        <span style>
         "Description of season2"
        <span>
    </p>
    <p></p>
    <p></p>
    <h3>
      <p class="ladillo">
         <span>Season 3</span>
      </p>
    </h3>
    <p></p>
    <p>
      "Description of season 3"
    </p>
    <p></p>
    <h3>
      <p class="ladillo">
         <span>Season 4</span>
      </p>
    </h3>
    <p></p>
    <p>
       "Description of season 4"
    </p>
    <p></p>
    <div class="MenuBlind">
       ....
    </div>
 </div>


Tags: of对象div信息styledescriptionextrah3
1条回答
网友
1楼 · 发布于 2024-04-23 08:53:16

这里有一条路。在Python名称div中存储所拥有的内容。然后找到laudillo类的第一个实例,在这段代码中称为firstLaudillo。然后遍历这些项,然后检查每个项。忽略空段落和不相关的段落。从一开始,每次出现另一个类时递增。等等。您可能需要了解一点如何询问BeautifulSoup以获取这些项目的内容。你知道吗

>>> import requests
>>> from bs4 import BeautifulSoup
>>> page = requests.get('http://www.tve.es/alacarta/videos/aguila-roja/')
>>> soup = BeautifulSoup(page.text,'lxml')
>>> div = soup.find_all("div", class_="extra mark")
>>> div
[<div class="extra mark">
<p></p><p>Esa determinación le llevará a vivir una doble vida, maestro de día y héroe secreto al caer la noche: buscará sin descanso a los culpables de la muerte de su esposa mientras lucha contra el terror y la opresión impuestas por un malvado comisario, al servicio de una misteriosa logia secreta que conspira para derrocar al Rey. </p>
<p><span style="line-height: 1.6em;">Hombre de modernos ideales a pesar del oscurantismo de la época que le ha tocado vivir, Gonzalo de Montalvo es un personaje atrapado en su triple condición de hombre, padre y héroe. Así, sufrirá por la muerte de su esposa mientras dos mujeres luchan por su amor, intentará ganarse la confianza y el aprecio de su único hijo y sufrirá la implacable persecución del comisario en su condición de Aguila Roja. </span></p>
<p>Nadie, excepto su fiel criado Sátur y un misterioso fraile, conocen la verdadera identidad de Águila Roja, ni siquiera su único hijo, que siente una profunda admiración por el misterioso personaje, ajeno por completo al hecho de que viven bajo el mismo techo. El contrapunto humorístico, pragmático y pícaro a la noble y desinteresada actuación de Águila Roja lo pondrá su criado Sátur, un buscavidas hecho a sí mismo.</p>
<p><strong style="color: rgb(51, 102, 255); line-height: 20.8px;">Este contenido no está disponible en Estados Unidos y Canadá por restricciones de derechos. </strong></p>
<h3></h3><**p class="ladillo"**><span>Temporada 1</span></p>
<p></p><p><span style="">El aparentemente apacible maestro Gonzalo de Montalvo, decide lanzarse a la acción tras el asesinato de su esposa en extrañas circunstancias. Esa determinació ...

<span class="reduce" id="menosinfoprog">
                        Ocultar información sobre "Águila Roja"
                </span>
</div>
</div>]
>>> firstLadillo = div[0].find('p',attrs={'class', 'ladillo'})
>>> for count, sib in enumerate(firstLadillo.fetchNextSiblings()):
...     sib
...     if count>10:
...         break
...     
<p></p>
<p><span style="">El aparentemente apacible maestro Gonzalo de Montalvo, decide lanzarse a la acción tras el asesinato de su esposa en extrañas circunstancias. Esa determinación le llevará a vivir una doble vida, maestro de día y héroe secreto al caer la noche: buscará sin descanso a los culpables de la muerte de su esposa mientras lucha contra el terror y la opresión impuestas por un malvado comisario, al servicio de una misteriosa logia secreta que conspira para derrocar al Rey. Nadie, excepto su fiel criado Sátur y un misterioso fraile, conocen la verdadera identidad de Águila Roja.</span></p>
<p></p>
<h3></h3>
<p class="ladillo"><span>Temporada 2</span></p>
<p></p>
<p><span style="">Desmantelada la conspiración para matar al Rey, Águila Roja se enfrentará a una misión que le obsesiona: el descubrimiento de sus verdaderos orígenes, tras haber conocido que El Comisario, a quien estaba a punto de matar en venganza por el asesinato de su esposa, es en realidad su hermano. Varias pistas le permitirán empezar a tirar de un hilo que pondrá en peligro, aún más si cabe, su vida y la de quienes le rodean.</span></p>
<p></p>
<h3></h3>
<p class="ladillo"><span>Temporada 3</span></p>
<p></p>
<p>El ambicioso Cardenal Mendoza maneja la información que posee sobre el pasado sentimental del Rey con Laura de Montignac para chantajearlo con el objetivo de conseguir el apoyo de la Corona española en su ascenso al Papado. Por su parte, la Monarquía utilizará las habilidades e influencias de la Marquesa. El Rey le encargará una truculenta misión para vengarse del Cardenal Mendoza, y la propia Reina, que es consciente de que Lucrecia es la amante del monarca, le confía la vida del heredero al trono. Margarita se debate entre varios amoresa los que ahora podría sumarse el héroe enmascarado. Sátur, el fiel escudero de Águila Roja, decide abandonar a la familiaque le ha acogido durante tanto tiempo para ir en busca de la suya propia.</p>
>>> 

相关问题 更多 >