環境
python3.7
beautifulsoup4.7.1
前提・実現したいこと
PythonでBeautifulSoupを使い始めたばかりです。
<span style="font-size::12px">と<p id="hoge">と言ったようにタグと属性で指定して、
複数条件で並び順を維持したまま所得したいと思いました。
<span style="font-size:16px">hoge</span> <span style="font-size:12px">title1</span> <p id="1">text01</p> <p id="2">text02</p> <p id="3">text03</p> <span>huga</span> <span style="font-size:12px">title2</span> <p id="1">text01</p> <p id="2">text02</p> <p id="3">text03</p> <span>huga</span>
上のような構造のHTMLからspanでslyle属性とpタグのIDを指定して、
titleとtextのみを並び順を維持して所得したいのですが方法が分かりませんでした。
from bs4 import BeautifulSoup import pathlib p = pathlib.Path(filePath) htmlFile: str = p.read_text(encoding="utf-8") soup = BeautifulSoup(htmlFile, features="lxml") print(soup.find_all("span", style="font-size:12px"))
上記コードのsoup.find_all("span", style="font-size:12px")の部分にもう一つ条件を追加して
<p id=re.compile("\d+")>の項目を同時に所得するために span, style="font-size:12px" or "p", id=re.compile("\d+")という感じで 双方を所得したいと思っています。試したこと
soup.find_all(["span", "p"])で複数のタグを所得できるので、
soup.find_all([["span", style="font-size:12px"], ["p", id=re.compile("\d+")])
としても駄目でした。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/22 09:02