HTMLで、最初の階層のdiv要素のclassが"aaa"のものが2つあり、
1つの"aaa"のはさらに下の階層に"bbb"のclassがあります。
"aaa"classのものをダブって取ってきてしまうので、求めている結果もダブってしまいます。
具体的には以下のようなHTMLとpythonのプログラムとその結果です。
HTML
<html> <head> <meta charset="UTF-8"> <titlet></title> </head> <body> <div class="aaa"> <div class="bbb"> <a href="test01.html">test01です</a>? </div> </div> <div class="aaa"> <a href="test02.html">test02です</a> </div> </body> </html>
python
import requests from bs4 import BeautifulSoup load_url = 'http://localhost/python/test_tera06.html' html = requests.get(load_url) soup = BeautifulSoup(html.content, "html.parser") print(html.status_code) for link_01 in soup.find_all('div', class_= 'bbb'): print(link_01.text) for link_02 in soup.find_all('div', class_= 'aaa'): print(link_02.text)
実行結果
test01です
test01です
test02です
*改行は取り除いています。
やりたいこと
test01です
test02です
としたいのですが、どうすればいいのでしょうか。
Classのfind_allでのand条件ができれば、
例:find_all('div',class_'aaa,bbb')のような指定
と思ったのですが、わかりません。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/07/15 04:51