0

このスニペットから少しデータを抽出したいと思います。

<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'})が、さらにドリルダウンして必要なものを取得する方法がわかりません。

誰でも助けることができますか?

4

3 に答える 3

0

DIV が常に同じ構造である場合は、BeautifulSoup を使用してこの手順に従うことができます。DIV を抽出したら、'\n' で区切られたテキストで新しい LIST を作成します。次に、リストの正しい要素を選択するだけです。

私は似たようなことをしましたが、ここで私が行ったことすべてを説明しました: Python と BeautifulSoup: Quiniela から賞品を抽出する - http://www.manejandodatos.es/2014/2/python-beautifulsoup-extracting-prizes-quiniela

それが役立つことを願っています!

于 2014-02-13T11:57:12.230 に答える
0

前述のように、これらの div の構造が常に同じである場合、分割するとサイズは 3 番目の文字列になります。

>>>> 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 に一致します。

于 2014-02-13T12:09:33.893 に答える
0

BeautifulSoup は Xpath をサポートしていないため、最適な方法はlxmlを使用することです。

于 2014-02-13T11:15:35.647 に答える