私はBeautifulSoupを使用して画面スクレイピングを行っています。私の問題はこれです:段落から特定のものを抽出する必要があります。例:
<p><b><a href="/name/abe">ABE</a></b> <font class="masc">m</font> <font class="info"><a href="/nmc/eng.php" class="usg">English</a>, <a href="/nmc/jew.php" class="usg">Hebrew</a></font><br />Short form of <a href="/name/abraham" class="nl">ABRAHAM</a>
この段落から、次のようにABEという名前を抽出できます。
for pFound in soup.findAll('p'):
print pFound
#will get the names
x = pFound.find('a').renderContents()
print x
今、私の問題は、同じ段落で他の名前も抽出することです。
Short form of <a href="/name/abraham" class="nl">ABRAHAM</a>
タグaの前に「Shortformof」というテキストが付いている場合にのみ、これを抽出する必要があります。
これを行う方法についてのアイデアはありますか?HTMLページにはそのような段落がたくさんあり、すべてに「短い形式」というテキストが含まれているわけではありません。その場所に他のテキストが含まれている可能性があります。
正規表現とfindNext()の組み合わせが役立つと思いますが、BeautifulSoupには慣れていません。かなりの時間を無駄にしてしまいました。
どんな助けでもいただければ幸いです。ありがとう。