回答編集履歴

2

コード更新し忘れ修正

2022/07/14 13:45

投稿

East_san
East_san

スコア407

test CHANGED
@@ -28,13 +28,26 @@
28
28
  soup = BeautifulSoup(html_doc, features="html.parser")
29
29
 
30
30
  # やり方1
31
+ print("----やり方1----")
31
32
  for link in soup.find_all("a"):
32
33
  print(link.text)
33
34
 
34
35
  # やり方2
36
+ print("----やり方2----")
35
37
  for link in soup.find_all("div", class_="aaa"):
36
38
  if link.div is not None:
37
39
  print(link.div.a.text)
38
40
  else:
39
41
  print(link.a.text)
42
+
43
+ # やり方3
44
+ print("----やり方3----")
45
+ for link in soup.find_all("div", class_="aaa"):
46
+ if link.div is not None:
47
+ class_list = link.div.get("class")
48
+ if (class_list is not None) and ("bbb" in class_list):
49
+ print(link.div.a.text)
50
+ else:
51
+ print(link.a.text)
52
+
40
53
  ```

1

やり方3を加えました

2022/07/14 13:44

投稿

East_san
East_san

スコア407

test CHANGED
@@ -1,6 +1,7 @@
1
1
  やり方は色々とあると思いますが、以下が考えられます(今回の場合ですと結果は同じになります)
2
2
  test01, test02がaタグなのでそもそもaタグから取ってくる(やり方1)
3
3
  test01はdivが2階層になっているので、それで判定する(やり方2)
4
+ test01のdiv class="aaa"で子要素のdiv class="bbb"で判定する(やり方3)
4
5
 
5
6
  ```python
6
7
  from bs4 import BeautifulSoup