前提・実現したいこと
初学者です。
スクレイピングで指定していない要素まで取得してしまうことについて質問です。
例えば以下のコードのようにclass="aaa"を取得していにも関わらず、その下の要素も取得してしまうことがあります。
これは毎度ではなく、稀に狙い通りに取得できたり、不要な部分も取得してしまったりといったようになっており、原因の特定ができません。
よろしくお願いします。
該当のソースコード
html
1... 2 3<tbody> 4 <tr> 5 <a href="..." class="aaa">取得したいテキスト</a> 6 </tr> 7 <tr> 8 稀に取得される不要なテキスト 9 </tr> 10</tbody> 11 12...
Python
1resp = requests.get(url) 2soup = BeautifulSoup(resp.text, 'html.parser') 3 4tags = soup.select(".aaa") 5result = [tag.get_text(".aaa") for tag in tags] 6print(result)
出力1(うまくいった場合)
['取得したいテキスト']
出力2(うまくいかなかった場合)
['取得したいテキスト', '稀に取得される不要なテキスト']
試したこと
select以外にfindを使用する
補足情報(FW/ツールのバージョンなど)
Python3.8.2
BeautifulSoup4.9.3