回答編集履歴

1

追記

2019/11/21 14:17

投稿

barobaro
barobaro

スコア1286

test CHANGED
@@ -53,3 +53,51 @@
53
53
  サンプルにdivでclassが"__shi_m_txt"はないのと
54
54
 
55
55
  これで取得しても「資格」しか取れないと思うのですが
56
+
57
+
58
+
59
+ # 追記
60
+
61
+ beautifulsoupの場合
62
+
63
+
64
+
65
+ ```python
66
+
67
+ import requests
68
+
69
+ from bs4 import BeautifulSoup
70
+
71
+ import re
72
+
73
+
74
+
75
+ url = 'https://shingakunet.com/gakko/SC003048/gakubugakka/00000000000160337/'
76
+
77
+
78
+
79
+ r = requests.get(url)
80
+
81
+
82
+
83
+ r.raise_for_status()
84
+
85
+
86
+
87
+ soup = BeautifulSoup(r.content, 'html5lib')
88
+
89
+
90
+
91
+ # 資格の下のテキスト取得
92
+
93
+ t = "\n".join([re.sub("\s", "", i) for i in soup.find("span", class_ = "__shi_m_txt", text = "資格").parent.find_next_sibling("div", class_="__shi_gakkaDetail_cont").stripped_strings])
94
+
95
+ # 資格のタグ(find)→親タグ(parent)→下の兄弟タグ(find_next_sibling)→前後の空白文字を除去したテキスト→文中の空白文字削除→結合
96
+
97
+
98
+
99
+ # Webページと同じように、の後の改行を削除
100
+
101
+ print(re.sub("、\n", "、", t))
102
+
103
+ ```