我想从这个代码段中提取一些数据:
<div id="information_content">
<b>Name:</b> file.rar <br>
<b>Date Modified:</b> 2 days ago <br>
<b>Size:</b> 212.19 MB <br>
<b>Type:</b> Archive <br>
<b>Permissions:</b> Public </div>
</div>
我只想提取212.19 MB
。
我已使用soup.find('div', attrs={'id': 'information_content'})
提取了代码段,但我无法弄清楚如何深入挖掘以获得我需要的内容。
有人可以帮忙吗?
答案 0 :(得分:0)
由于BeautifulSoup不支持Xpath,最好的方法是使用lxml。
答案 1 :(得分:0)
如果DIV始终具有相同的结构,则可以使用BeautifulSoup按照此说明进行操作。 一旦你提取了DIV,用文本创建一个新的LIST,用'\ n'分割。 然后,只需选择列表中的右侧元素即可。
我做了类似的事情,在这里我解释了我所做的一切: Python和BeautifulSoup:从Quiniela中提取奖品 - http://www.manejandodatos.es/2014/2/python-beautifulsoup-extracting-prizes-quiniela
我希望它有所帮助!
答案 2 :(得分:0)
如前所述,如果这些div的结构总是相同的,那么如果你拆分,大小将在第三个字符串中。
>>>> x = '<div id="information_content"> <b>Name:</b> file.rar <br> <b>Date Modified:</b> 2 days ago <br> <b>Size:</b> 212.19 MB <br> <b>Type:</b> Archive <br> <b>Permissions:</b> Public </div> </div>'
>>>> x.split('<br>')[2]
' <b>Size:</b> 212.19 MB '
从那里你可以使用正则表达式来获得你需要的部分。 例如,此模式匹配此类格式的所有值:
\d+.\d\d\s.B
它匹配10.00 kB以及1000.34 TB