teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

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

2020/06/16 03:02

投稿

ayato6978
ayato6978

スコア0

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
- <div class="AAA">
23
+ f = open("output.csv", "w")
8
- <div class="BBB"></div>
9
- <div class="BBB CCC"></div>
24
+ writecsv = csv.writer(f, lineterminator='\n')
10
- </div>
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
+ 希望アウトプットルにするにはどのようにしら良いのでしょうか