質問編集履歴

1

現在のソースコード追加。希望結果修正いたしました。

2020/06/16 03:02

投稿

ayato6978
ayato6978

スコア0

test CHANGED
File without changes
test CHANGED
@@ -4,38 +4,88 @@
4
4
 
5
5
  Python等を使用して複数ページのサイトに使用されているClass名を一覧化したい。
6
6
 
7
- 可能であれば特定ID(Class)名のInnerHTMLのClass名のみ
8
-
9
7
  ### サンプルコード
10
8
 
11
9
  ```
12
10
 
13
- <div class="AAA">
11
+ import requests
14
12
 
15
- <div class="BBB"></div>
13
+ import csv
16
14
 
17
- <div class="BBB CCC"></div>
15
+ from bs4 import BeautifulSoup
18
16
 
17
+
18
+
19
+ # パース対象のHTML
20
+
21
+ r = requests.get("###URL###")
22
+
23
+
24
+
25
+ # BeautifulSoupのインスタンスを生成
26
+
27
+ soup = BeautifulSoup(r.content, "html.parser")
28
+
29
+
30
+
31
+ # 大枠を指定
32
+
33
+ target = soup.find(class_="###CLASS###")
34
+
35
+
36
+
37
+ ## 配列を作成
38
+
39
+ tags = [elem.get('class') for elem in target.find_all()]
40
+
41
+
42
+
43
+ print(tags)
44
+
45
+ f = open("output.csv", "w")
46
+
47
+ writecsv = csv.writer(f, lineterminator='\n')
48
+
19
- </div>
49
+ writecsv.writerow(tags)
50
+
51
+ f.close()
20
52
 
21
53
  ```
22
54
 
23
55
 
24
56
 
57
+ ### 今のアウトプット結果
58
+
59
+ ```
60
+
61
+ ['AAA', 'BBB']",['CCC'],,,,,['DDD']
62
+
63
+ ```
64
+
25
- ### 希望抽出結果
65
+ ### 希望アウトプット結果
26
66
 
27
67
 
28
68
 
29
- ```ここに言語名を入力
69
+ ```
70
+
71
+ AAA
30
72
 
31
73
  BBB
32
74
 
33
75
  CCC
34
76
 
77
+ DDD
78
+
35
79
  ```
36
80
 
37
81
 
38
82
 
39
- 無償であればスクレイピングツール等でも大丈夫です。
83
+ pythonを触り始めて数時間、、、
40
84
 
85
+ まだ単ページの抽出(さらに希望の抽出結果になっていない)状態で悩んでいます。
86
+
87
+
88
+
41
- スクレイピングを行ったことがないご教示いただけまと。
89
+ 文字列の変換すらママらな初心者プログラマですが、
90
+
91
+ 希望アウトプットスタイルにするにはどのようにしたら良いのでしょうか。。