質問編集履歴
1
現在のソースコード追加。希望結果修正いたしました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,21 +1,46 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
2
|
|
3
3
|
Python等を使用して複数ページのサイトに使用されているClass名を一覧化したい。
|
4
|
-
可能であれば特定ID(Class)名のInnerHTMLのClass名のみ
|
5
4
|
### サンプルコード
|
6
5
|
```
|
6
|
+
import requests
|
7
|
+
import csv
|
8
|
+
from bs4 import BeautifulSoup
|
9
|
+
|
10
|
+
# パース対象のHTML
|
11
|
+
r = requests.get("###URL###")
|
12
|
+
|
13
|
+
# BeautifulSoupのインスタンスを生成
|
14
|
+
soup = BeautifulSoup(r.content, "html.parser")
|
15
|
+
|
16
|
+
# 大枠を指定
|
17
|
+
target = soup.find(class_="###CLASS###")
|
18
|
+
|
19
|
+
## 配列を作成
|
20
|
+
tags = [elem.get('class') for elem in target.find_all()]
|
21
|
+
|
22
|
+
print(tags)
|
7
|
-
|
23
|
+
f = open("output.csv", "w")
|
8
|
-
<div class="BBB"></div>
|
9
|
-
|
24
|
+
writecsv = csv.writer(f, lineterminator='\n')
|
10
|
-
|
25
|
+
writecsv.writerow(tags)
|
26
|
+
f.close()
|
11
27
|
```
|
12
28
|
|
29
|
+
### 今のアウトプット結果
|
30
|
+
```
|
31
|
+
['AAA', 'BBB']",['CCC'],,,,,['DDD']
|
32
|
+
```
|
13
|
-
### 希望
|
33
|
+
### 希望アウトプット結果
|
14
34
|
|
15
|
-
```
|
35
|
+
```
|
36
|
+
AAA
|
16
37
|
BBB
|
17
38
|
CCC
|
39
|
+
DDD
|
18
40
|
```
|
19
41
|
|
42
|
+
pythonを触り始めて数時間、、、
|
43
|
+
まだ単ページの抽出(さらに希望の抽出結果になっていない)状態で悩んでいます。
|
44
|
+
|
20
|
-
|
45
|
+
文字列の変換すらママならない初心者プログラマですが、
|
21
|
-
ス
|
46
|
+
希望アウトプットスタイルにするにはどのようにしたら良いのでしょうか。。
|