【问题标题】:Python web scraping style contentPython网页抓取样式内容
【发布时间】:2019-07-19 07:59:35
【问题描述】:

我只想使用python从HTML中提取数据。(我需要data = 20%) 对此的任何帮助将不胜感激。

<div class="ratings-container">
  <div class="ratings">
    <div class="ratings active" style="width: 20%"></div>
  </div>
</div>

我不知道如何获取样式内容。以下类似代码的结果为NULL:

mratingNew = (tag.findAll('div',attrs={"class":"ratings active"})) 
for i in range(len(muserName)): 
    print(mratingNew[i].['style']) 

【问题讨论】:

  • 您是否遇到任何特定错误?

标签: python-3.x web-scraping beautifulsoup jupyter-notebook html-parsing


【解决方案1】:

您可以使用find获取宽度,并可以根据:拆分它

from bs4 import BeautifulSoup

html = '''<div class="ratings-container">
  <div class="ratings">
 <div class="ratings active" style="width: 20%"></div>
   </div>
     </div>'''

soup = BeautifulSoup(html,"html.parser")
finddiv = soup.find('div',attrs={'class':'ratings active'})
style = finddiv['style']

style = style.split(':',1)[-1]
print style

输出:

 20%

如果您有多个具有相同类名的宽度,例如:

html = '''<div class="ratings-container">
 <div class="ratings">
 <div class="ratings active" style="width: 20%"></div>
 <div class="ratings active" style="width: 40%"></div>
 <div class="ratings active" style="width: 30%"></div>
   </div>
     </div>'''

需要使用findAll,并一一拆分

find_last_div = soup.findAll('div',attrs={'class':'ratings active'})
for width_value in find_last_div:
    width_Get = width_value['style'].split(':',1)[-1]
    print width_Get

输出:

 20%
 40%
 30%

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-24
    • 2010-10-09
    • 2019-11-05
    • 2017-03-24
    • 1970-01-01
    相关资源
    最近更新 更多