python - 如何使用 BeautifulSoup4 解析数据?
问题描述
以下是 .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” img_list
。我尝试了很多解决方案,但我得到的只是无。
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)
但一无所获。我在这里缺少什么?
解决方案
我认为您将无法获取该 img 数据。
for item in soup.find("content:encoded"):
print(item)
print(type(item))
然后查看:https
: //www.crummy.com/software/BeautifulSoup/bs4/doc/#navigablestring 所以 bs4 认为它是一个字符串,您需要手动解析它,或者将新字符串重新输入到新的 bs4 对象中
推荐阅读
- dart - 如何在更新并显示在firestore之前在本地显示数据更改
- command-line - Pycharm - 为项目构建缓存/索引的命令行
- ios - 尽管更改会导致 controllerDidChangeContent 调用 tableView.reloadData() 并反过来调用 numberOfSections,但没有更改部分信息
- javascript - 在加载和更改时执行 jQuery 函数
- python - Tensorflow安装Mac报错:找不到匹配的分布
- loops - LLVM 循环不变代码运动 (-licm) 传递
- linux - libVLCQtCore.so:未定义对 `qt_version_tag@Qt_5.11' 的引用
- sql-server - 由于活动事务,SQL Server 日志已满
- javascript - 无法重置 JavaScript 条形图
- javascript - Angularjs“跳转到页面”分页