回答編集履歴
2
CSV書き込み追加
answer
CHANGED
@@ -2,8 +2,10 @@
|
|
2
2
|
h4タグのすぐ下のpタグを検索してURLを抽出、aタグのテキストが邪魔なので削除
|
3
3
|
|
4
4
|
```python
|
5
|
+
import csv
|
6
|
+
from urllib.parse import urljoin
|
7
|
+
|
5
8
|
import requests
|
6
|
-
from urllib.parse import urljoin
|
7
9
|
from bs4 import BeautifulSoup
|
8
10
|
|
9
11
|
url = 'https://www.birdfan.net/gallery/library/sanya_mijika.html'
|
@@ -19,27 +21,33 @@
|
|
19
21
|
|
20
22
|
soup = BeautifulSoup(r.content, 'html5lib')
|
21
23
|
|
22
|
-
|
24
|
+
with open('result.csv', 'w') as fw:
|
25
|
+
writer = csv.writer(fw, dialect='excel', lineterminator='\n')
|
23
26
|
|
24
|
-
# h4より上を検索
|
25
|
-
|
27
|
+
for i in soup.select('h4'):
|
26
|
-
h3 = i.find_previous_sibling('h3').get_text(strip=True)
|
27
28
|
|
29
|
+
# h4より上を検索
|
28
|
-
|
30
|
+
h2 = i.find_previous_sibling('h2').get_text(strip=True)
|
31
|
+
h3 = i.find_previous_sibling('h3').get_text(strip=True)
|
29
32
|
|
30
|
-
# h4より下を検索
|
31
|
-
|
33
|
+
h4 = i.get_text(strip=True)
|
32
|
-
link = urljoin(url, p.a.get('href'))
|
33
34
|
|
34
|
-
|
35
|
+
# h4より下を検索
|
35
|
-
|
36
|
+
p = i.find_next_sibling('p')
|
37
|
+
link = urljoin(url, p.a.get('href'))
|
36
38
|
|
39
|
+
# pのaタグ削除
|
40
|
+
p.a.decompose()
|
41
|
+
|
37
|
-
|
42
|
+
print(h2)
|
38
|
-
|
43
|
+
print(h3)
|
39
|
-
|
44
|
+
print(h4)
|
40
|
-
|
45
|
+
print(p.text.strip())
|
41
|
-
|
46
|
+
print(link)
|
42
|
-
|
47
|
+
print('-' * 20)
|
48
|
+
|
49
|
+
# CSV保存
|
50
|
+
writer.writerow([h2, h3, h4, p.text.strip(), link])
|
43
51
|
```
|
44
52
|
結果
|
45
53
|
```
|
1
説明追加
answer
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
まずh4タグを探してh4タグから上にh2タグ、h3タグを検索
|
2
|
+
h4タグのすぐ下のpタグを検索してURLを抽出、aタグのテキストが邪魔なので削除
|
3
|
+
|
1
4
|
```python
|
2
5
|
import requests
|
3
6
|
from urllib.parse import urljoin
|
@@ -16,7 +19,7 @@
|
|
16
19
|
|
17
20
|
soup = BeautifulSoup(r.content, 'html5lib')
|
18
21
|
|
19
|
-
for i in soup.
|
22
|
+
for i in soup.find_all('h4'):
|
20
23
|
|
21
24
|
# h4より上を検索
|
22
25
|
h2 = i.find_previous_sibling('h2').get_text(strip=True)
|
@@ -37,4 +40,31 @@
|
|
37
40
|
print(p.text.strip())
|
38
41
|
print(link)
|
39
42
|
print('-' * 20)
|
43
|
+
```
|
44
|
+
結果
|
45
|
+
```
|
46
|
+
フォトギャラリー野鳥図鑑(身近な鳥)
|
47
|
+
身近な鳥(スズメ大)
|
48
|
+
スズメ
|
49
|
+
スズメ目ハタオリドリ科
|
50
|
+
全長:14.5cm 翼開長:22.5cm
|
51
|
+
人家付近でのみ見られる。ほおに黒い斑(幼鳥ではうすい)。
|
52
|
+
https://www.birdfan.net/pg/kind/ord17/fam1727/spe172702/
|
53
|
+
--------------------
|
54
|
+
フォトギャラリー野鳥図鑑(身近な鳥)
|
55
|
+
身近な鳥(スズメ大)
|
56
|
+
シジュウカラ
|
57
|
+
スズメ目シジュウカラ科
|
58
|
+
全長:14cm
|
59
|
+
白いほお、胸から腹にネクタイ模様(太い方が雄)。
|
60
|
+
https://www.birdfan.net/pg/kind/ord17/fam1718/spe171805/
|
61
|
+
--------------------
|
62
|
+
フォトギャラリー野鳥図鑑(身近な鳥)
|
63
|
+
身近な鳥(スズメ大)
|
64
|
+
カワラヒワ
|
65
|
+
スズメ目アトリ科
|
66
|
+
全長:14cm
|
67
|
+
肌色で太めのくちばし、翼と尾に黄色の斑。
|
68
|
+
https://www.birdfan.net/pg/kind/ord17/fam1724/spe172402/
|
69
|
+
--------------------
|
40
70
|
```
|