如何从 python 中的 div 获取数据?

Posted

技术标签:

【中文标题】如何从 python 中的 div 获取数据?【英文标题】:How do I get data from a div in python? 【发布时间】:2022-01-23 07:45:22 【问题描述】:

我正在编写一个应该从 div 返回文本的 python 脚本。 html 看起来像这样:

<div id="bodyContent" class="vector-body">
    <div id="siteSub" class="noprint">From Wikipedia, the free encyclopedia</div>

所以我的脚本应该返回:“来自***,免费的百科全书”,但它什么也没返回

source = requests.get("https://en.wikipedia.org/wiki/2021_Osaka_building_fire").text

soup = BeautifulSoup(source, 'lxml')

print(soup.select_one("div[class*=noprint]").text)

我做错了什么?

【问题讨论】:

class*=noprint 星号的用途是什么? 如果你使用soup.select('div', 'class': 'noprint')之类的东西,你会发现这是第7个匹配的div有你需要的文本,select_one给你第一个,这确实是空的。跨度> 【参考方案1】:

问题是页面中还有其他 div.noprint,它捕获的“一个”是空的

另一种方法是通过 id 找出:

print(soup.select_one("div[id*=siteSub]").text)

【讨论】:

以上是关于如何从 python 中的 div 获取数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 ajax 请求中获取数据以显示在 div 中?

使用 Python 从 HTML 中获取 div

从数据库获取颜色到 DIV 背景

如何获取网页中的json数据?

如何从 Python 程序中的命令行获取数据?

js如何获取div中的数据?