【问题标题】:Scraping multiple similar lines with python用python刮掉多条相似的线
【发布时间】:2018-12-04 20:43:50
【问题描述】:

使用一个简单的请求,我试图从这个 html 页面获取一些存储在“alt”中的信息。问题是,在每个实例中,信息以“img”开头的多行分隔,当我尝试访问它时,我只能读取“img”的第一个实例而不能读取其余实例,但我我不知道该怎么做。这是 HTML 文本:

<div class="archetype-tile-description-wrapper">
    <div class="archetype-tile-description">
        <h2>
            <span class="deck-price-online">
                <a href="/archetype/standard-golgari-midrange-60634#online">Golgari Midrange</a>
            </span>
            <span class="deck-price-paper">
                <a href="/archetype/standard-golgari-midrange-60634#paper">Golgari Midrange</a>
            </span>
        </h2>
        <div class="manacost-container">
            <span class="manacost">
                <img alt="b" class="common-manaCost-manaSymbol sprite-mana_symbols_b" src="//assets1.mtggoldfish.com/assets/s-d69cbc552cfe8de4931deb191dd349a881ff4448ed3251571e0bacd0257519b1.gif" />
                <img alt="g" class="common-manaCost-manaSymbol sprite-mana_symbols_g" src="//assets1.mtggoldfish.com/assets/s-d69cbc552cfe8de4931deb191dd349a881ff4448ed3251571e0bacd0257519b1.gif" />
            </span>
        </div>
        <ul>
            <li>Jadelight Ranger</li>
            <li>Merfolk Branchwalker</li>
            <li>Vraska's Contempt</li>
        </ul>
    </div>
</div>

话虽如此,我希望从中得到“b”和“g”,并将它们存储在一个变量中。

【问题讨论】:

  • 你能分享你到目前为止绑定的代码吗?

标签: python-3.x web-scraping beautifulsoup


【解决方案1】:

您可能可以像这样使用"common-manaCost-manaSymbol" 类获取那些&lt;img&gt; 元素:

imgs = soup.find_all("img",{"class":"common-manaCost-manaSymbol"})

然后您可以遍历每个&lt;img&gt; 并获取它的alt 属性。

alts = []
for i in imgs:
    alts.append(i['alt'])

或使用列表理解

alts = [i['alt'] for i in imgs]

【讨论】:

  • 谢谢,技术上可行!我在帖子中没有提到的一件事是还有“archetype-tile-description-wrapper”类的其他实例以及它附带的所有其他实例,因此运行此循环实际上会从其他所有实例中获取“imgs” .
  • 好的,更新您的问题以更清楚。我只能用你给我的东西来工作
  • 使用您的建议,我能够通过将变量“imgs”和循环放在另一个指定我所在的“archetype-tile-description-wrapper”类的循环中来做我正在尝试的事情。我刚开始使用这个网站,如有任何问题,我深表歉意,再次感谢:)
猜你喜欢
  • 1970-01-01
  • 2015-08-15
  • 1970-01-01
  • 1970-01-01
  • 2020-10-01
  • 2022-07-22
  • 2023-01-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多