python beautifulsoup 跨多行搜索

标签 python beautifulsoup

我正在尝试从下面显示的输入代码中搜索财务页面的市盈率。所以,基本上我是想从源代码中提取“48.98”。 由于市值、账面值(value)等的结构相同。我无法为 soup.find 构建正确的代码

非常感谢 soup.find 代码的正确结构。 我是新手,如果我问的是非常基本的问题,我很抱歉。 提前致谢 !

<div class="FL" style="width:210px; padding-right:10px">
<div class="PA7 brdb">
<div class="FL gL_10 UC">MARKET CAP (Rs Cr)</div>
<div class="FR gD_12">41,364.28</div>
<div class="CL"></div>
</div>
<div class="PA7 brdb">
<div class="FL gL_10 UC">P/E</div>
<div class="FR gD_12">**48.98**</div>
<div class="CL"></div>
</div>
<div class="PA7 brdb">
<div class="FL gL_10 UC">BOOK VALUE (Rs)</div>
<div class="FR gD_12">147.24</div>
<div class="CL"></div>
</div>
<div class="PA7 brdb">
<div class="FL gL_10 UC">DIV (%)</div>
<div class="FR gD_12">1000.00%</div>
<div class="CL"></div>
</div>
<div class="PA7 brdb">
<div class="FL gL_10 UC">Market Lot</div>
<div class="FR gD_12">1</div>
<div class="CL"></div>
</div>
<div class="PA7 brdb">
<div class="FL gL_10 UC">INDUSTRY P/E</div>
<div class="FR gD_12">60.95</div>
<div class="CL"></div>
</div>
</div>

最佳答案

使用文本找到带有"P/E"的div,得到下一个div:

price = soup.find("div", class_="FL gL_10 UC", text="P/E").find_next("div").text

如果它始终是具有 css 类 FR gD_12 的第二个 div,您也可以只获取前两个并提取第二个

price = soup.select("div.FR.gD_12", limit=2)[1].text

关于python beautifulsoup 跨多行搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39235110/

相关文章:

python - 为什么 dill 无论如何都会通过引用转储外部类?

python - 在 Python 中生成非常大的文本文件的时间性能

Python - 从 ReactJS div 中抓取列表内容

python - 从网络中提取数据

html - 如何只从 HTML 中获取新闻部分?

python - 非常奇妙的循环行为 : lists changes identity. 发生了什么?

Python:组合和重新排列数组

python - 无法从 python 搜索标签,但可以在 chrome 中查看

python - 在网站上使用 python Beautiful Soup 时,不断收到此错误 : urllib. error.HTTPError: HTTP Error 403: Forbidden

python - 如何创建具有非数字 X 轴的条形图?