【问题标题】:How to parse data using BeautifulSoup4?如何使用 BeautifulSoup4 解析数据?
【发布时间】:2018-05-14 17:00:23
【问题描述】:

以下是 .xml 文件中的示例:

    <title>Kaufsignal für Marriott International</title>
    <link>https://insideparadeplatz.ch/2015/03/06/kaufsignal-fuer-marriott-international/</link>
    <pubDate>Fri, 06 Mar 2015 </pubDate>
    <content:encoded>
        <![CDATA[
            <p class="p1">
                <span class="s1">Mit Marken wie Bulgari, Ritz-Carlton, Marriott und weiteren ist Marriott International nach sämtlichen Kriterien, die vom <a href="http://www.obermatt.com/de/home.html">
                <span class="s2">Obermatt-System</span></a></span> bewertet werden, ein interessantes Investment. Der Titel ist relativ gesehen günstig, das Unternehmen sollte weiter überproportional wachsen, und es ist solide finanziert, mit einem guten Verhältnis von Eigenkapital und Schulden. Über alle Kategorien gesehen landet die 
                <span class="s3">Marriott-Aktie</span></a>, die derzeit an der Technologiebörse Nasdaq bei rund 84 Dollar gehandelt wird, in der Wochenauswertung im Total-Ranking auf dem ersten Platz.

                <img class="aligncenter wp-image-17092 size-full" src="https://insideparadeplatz.ch/wp-content/uploads/2015/03/Total-Ranking-6-Mar-2015.png" alt="Total-Ranking 6 Mar 2015" width="873" height="627" /></a></p>]]>
    </content:encoded>

我想要做的是,使用 beautifulsoup4,我能够提取 'title', 'link', 'pubDate'.但问题是“内容:编码”。在这里,我想为我的“img_list”从“内容:编码”中提取“img”。我尝试了很多解决方案,但我得到的都是无。

title = []
link = []
date = []
img_list = []
for item in soup.find_all('item'):
    for t in item.find_all('title'):
        title.append(t.text)
for item in soup.find_all('item'):
    for l in item.find_all('link'):
        link.append(t.text)
for item in soup.find_all('item'):
    for date in item.find_all('pubDate'):
        pubDate.append(date.text)
for item in soup.find_all('item'):
    for data in item.find_all('content:encoded'):
        data.text

我试过了:

for item in soup.find_all('item'):
    for data in item.find_all('content:encoded'):
        for img in data.find_all('img'):
            img_list.append(img.text)

但一无所获。我在这里缺少什么?

【问题讨论】:

标签: python xml parsing beautifulsoup


【解决方案1】:

我认为您将无法获取该 img 数据。

for item in soup.find("content:encoded"):
   print(item)
   print(type(item))

然后看:https://www.crummy.com/software/BeautifulSoup/bs4/doc/#navigablestring

所以 bs4 认为它是一个字符串,您需要手动解析它,或者将新字符串重新输入到新的 bs4 对象中

【讨论】:

猜你喜欢
  • 2021-11-18
  • 2019-04-27
  • 1970-01-01
  • 1970-01-01
  • 2019-11-15
  • 2018-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多