回答編集履歴

1

ソースコードを追記しました。

2019/06/24 06:43

投稿

7vvXi
7vvXi

スコア24

test CHANGED
@@ -11,3 +11,129 @@
11
11
  順位を正しくするには、空白をappendするのが現状一番かと思われます。
12
12
 
13
13
  ループやインクリメント処理については、インデントやスコープをよく見て書いてみるといいかもしれません。
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+ ※ここから追記です
22
+
23
+ このようなことでしょうか?
24
+
25
+ 一応ですが、実行確認済みです。
26
+
27
+
28
+
29
+ ```Python
30
+
31
+ import requests
32
+
33
+ from bs4 import BeautifulSoup
34
+
35
+ import time
36
+
37
+ import os
38
+
39
+ import re
40
+
41
+ import csv
42
+
43
+ from urllib.parse import urljoin
44
+
45
+
46
+
47
+ #URL
48
+
49
+ url = ["http://hoge.co.jp", \
50
+
51
+ "http://fuga.co.jp", \
52
+
53
+ "http://piyo.co.jp"
54
+
55
+ ]
56
+
57
+
58
+
59
+ def scraping():
60
+
61
+ #URLカウンタ(初期化)
62
+
63
+ n = 0
64
+
65
+ while n < len(url):
66
+
67
+ #取得する値(配列)
68
+
69
+ res = requests.get(url[n])
70
+
71
+ res.raise_for_status()
72
+
73
+ #配列カウンタ(初期化)
74
+
75
+ count = 0
76
+
77
+ #指定のURLにアクセス
78
+
79
+ html = BeautifulSoup(res.content, "lxml")
80
+
81
+ #タグの内容を取得
82
+
83
+ arr1 = []
84
+
85
+ arr2 = []
86
+
87
+ data1 = html.find_all("h3", class_="hoge")
88
+
89
+ data2 = html.find_all("p")
90
+
91
+ if data1 is not None:
92
+
93
+ for tmp1 in data1:
94
+
95
+ arr1.append(tmp1.get_text())
96
+
97
+
98
+
99
+ if data2 is not None:
100
+
101
+ for tmp2 in data2:
102
+
103
+ data3 = tmp2.find_all("a")
104
+
105
+ if data3 is not None:
106
+
107
+ for pt in data3:
108
+
109
+ arr2.append(pt.get("href"))
110
+
111
+
112
+
113
+ #ファイル書き出し
114
+
115
+ filename = "output" + str(n) + ".csv"
116
+
117
+ with open(filename, 'w') as f:
118
+
119
+ writer = csv.writer(f)
120
+
121
+ writer.writerow(arr1)
122
+
123
+ writer.writerow(arr2)
124
+
125
+
126
+
127
+ #次のURLへ  
128
+
129
+ n += 1
130
+
131
+
132
+
133
+ if __name__ == '__main__':
134
+
135
+
136
+
137
+ scraping()
138
+
139
+ ```