2016-08-30 2 views
1

Я пытаюсь найти соотношение P/E финансовой страницы, начиная с кода ввода, показанного ниже. Поэтому, по сути, я пытаюсь извлечь '48 .98 'из источника. Поскольку структура такая же для рыночной капитализации, балансовой стоимости и т. Д. Я не могу создать правильный код для soup.findpython beautifulsoup поиск по нескольким строкам

Буду очень признателен за правильную структуру кода 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> 

ответ

4

Используйте текст, чтобы найти DIV с "P/E" и получить следующий DIV:

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

Если это всегда второй DIV с CSS класса FR gD_12 , вы также можете просто получить первые два и извлечь второй

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

Спасибо Padraic! Это было большой помощью. – sledgefox

Смежные вопросы