10

Web サイトを解析して、次のような本文に保存されているデータを取得しようとしています。

<body>
    <b>INFORMATION</b>
    Hookups: None
    Group Sites: No
    Station: No

    <b>Details</b>
    Ramp: Yes
</body>

BeautifulSoup4 と RegEx を使用してフックアップやグループ サイトなどの値を引き出したいと思っていますが、bs4 と RegEx の両方を初めて使用します。フックアップ値を取得するために次のことを試しました。

soup = BeautifulSoup(open('doc.html'))
hookups = soup.find_all(re.compile("Hookups:(.*)Group"))

しかし、検索は空に戻ります。

4

1 に答える 1

37

BeautifulSoupはtagsfind_allでのみ動作します。HTML がこのように単純であると仮定すると、実際には純粋な正規表現だけを使用して必要なものを取得できます。それ以外の場合は、ノードを使用して取得できます。find_all.text

re.findall("Hookups: (.*)", open('doc.html').read())

textBeautifulSoup 4.2 以降では、プロパティを使用してタグの内容で検索することもできます。

soup.find_all(text=re.compile("Hookups:(.*)Group"));

編集: BeautifulSoup 4.4 以降、text引数の名前はstring.

于 2013-05-07T14:22:21.753 に答える