回答編集履歴
2
CSV書き込み追加
test
CHANGED
@@ -6,9 +6,13 @@
|
|
6
6
|
|
7
7
|
```python
|
8
8
|
|
9
|
-
import
|
9
|
+
import csv
|
10
10
|
|
11
11
|
from urllib.parse import urljoin
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
import requests
|
12
16
|
|
13
17
|
from bs4 import BeautifulSoup
|
14
18
|
|
@@ -40,47 +44,59 @@
|
|
40
44
|
|
41
45
|
|
42
46
|
|
43
|
-
|
47
|
+
with open('result.csv', 'w') as fw:
|
48
|
+
|
49
|
+
writer = csv.writer(fw, dialect='excel', lineterminator='\n')
|
44
50
|
|
45
51
|
|
46
52
|
|
47
|
-
# h4より上を検索
|
48
|
-
|
49
|
-
|
53
|
+
for i in soup.select('h4'):
|
50
|
-
|
51
|
-
h3 = i.find_previous_sibling('h3').get_text(strip=True)
|
52
54
|
|
53
55
|
|
54
56
|
|
57
|
+
# h4より上を検索
|
58
|
+
|
55
|
-
h
|
59
|
+
h2 = i.find_previous_sibling('h2').get_text(strip=True)
|
60
|
+
|
61
|
+
h3 = i.find_previous_sibling('h3').get_text(strip=True)
|
56
62
|
|
57
63
|
|
58
64
|
|
59
|
-
# h4より下を検索
|
60
|
-
|
61
|
-
|
65
|
+
h4 = i.get_text(strip=True)
|
62
|
-
|
63
|
-
link = urljoin(url, p.a.get('href'))
|
64
66
|
|
65
67
|
|
66
68
|
|
67
|
-
#
|
69
|
+
# h4より下を検索
|
68
70
|
|
69
|
-
p.
|
71
|
+
p = i.find_next_sibling('p')
|
72
|
+
|
73
|
+
link = urljoin(url, p.a.get('href'))
|
70
74
|
|
71
75
|
|
72
76
|
|
73
|
-
p
|
77
|
+
# pのaタグ削除
|
74
78
|
|
75
|
-
p
|
79
|
+
p.a.decompose()
|
76
80
|
|
77
|
-
print(h4)
|
78
81
|
|
79
|
-
print(p.text.strip())
|
80
82
|
|
81
|
-
print(
|
83
|
+
print(h2)
|
82
84
|
|
85
|
+
print(h3)
|
86
|
+
|
87
|
+
print(h4)
|
88
|
+
|
89
|
+
print(p.text.strip())
|
90
|
+
|
91
|
+
print(link)
|
92
|
+
|
83
|
-
print('-' * 20)
|
93
|
+
print('-' * 20)
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
# CSV保存
|
98
|
+
|
99
|
+
writer.writerow([h2, h3, h4, p.text.strip(), link])
|
84
100
|
|
85
101
|
```
|
86
102
|
|
1
説明追加
test
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
まずh4タグを探してh4タグから上にh2タグ、h3タグを検索
|
2
|
+
|
3
|
+
h4タグのすぐ下のpタグを検索してURLを抽出、aタグのテキストが邪魔なので削除
|
4
|
+
|
5
|
+
|
6
|
+
|
1
7
|
```python
|
2
8
|
|
3
9
|
import requests
|
@@ -34,7 +40,7 @@
|
|
34
40
|
|
35
41
|
|
36
42
|
|
37
|
-
for i in soup.
|
43
|
+
for i in soup.find_all('h4'):
|
38
44
|
|
39
45
|
|
40
46
|
|
@@ -77,3 +83,57 @@
|
|
77
83
|
print('-' * 20)
|
78
84
|
|
79
85
|
```
|
86
|
+
|
87
|
+
結果
|
88
|
+
|
89
|
+
```
|
90
|
+
|
91
|
+
フォトギャラリー野鳥図鑑(身近な鳥)
|
92
|
+
|
93
|
+
身近な鳥(スズメ大)
|
94
|
+
|
95
|
+
スズメ
|
96
|
+
|
97
|
+
スズメ目ハタオリドリ科
|
98
|
+
|
99
|
+
全長:14.5cm 翼開長:22.5cm
|
100
|
+
|
101
|
+
人家付近でのみ見られる。ほおに黒い斑(幼鳥ではうすい)。
|
102
|
+
|
103
|
+
https://www.birdfan.net/pg/kind/ord17/fam1727/spe172702/
|
104
|
+
|
105
|
+
--------------------
|
106
|
+
|
107
|
+
フォトギャラリー野鳥図鑑(身近な鳥)
|
108
|
+
|
109
|
+
身近な鳥(スズメ大)
|
110
|
+
|
111
|
+
シジュウカラ
|
112
|
+
|
113
|
+
スズメ目シジュウカラ科
|
114
|
+
|
115
|
+
全長:14cm
|
116
|
+
|
117
|
+
白いほお、胸から腹にネクタイ模様(太い方が雄)。
|
118
|
+
|
119
|
+
https://www.birdfan.net/pg/kind/ord17/fam1718/spe171805/
|
120
|
+
|
121
|
+
--------------------
|
122
|
+
|
123
|
+
フォトギャラリー野鳥図鑑(身近な鳥)
|
124
|
+
|
125
|
+
身近な鳥(スズメ大)
|
126
|
+
|
127
|
+
カワラヒワ
|
128
|
+
|
129
|
+
スズメ目アトリ科
|
130
|
+
|
131
|
+
全長:14cm
|
132
|
+
|
133
|
+
肌色で太めのくちばし、翼と尾に黄色の斑。
|
134
|
+
|
135
|
+
https://www.birdfan.net/pg/kind/ord17/fam1724/spe172402/
|
136
|
+
|
137
|
+
--------------------
|
138
|
+
|
139
|
+
```
|