回答編集履歴

2

エラー内容追加

2018/12/19 08:14

投稿

barobaro
barobaro

スコア1286

test CHANGED
@@ -1,3 +1,15 @@
1
+ # エラー内容
2
+
3
+ http://blog.pyq.jp/entry/Python_kaiketsu_180516
4
+
5
+
6
+
7
+ インデントがそろってないようなので確認してください。
8
+
9
+
10
+
11
+
12
+
1
13
  pandasでスクレイピングするほうが簡単ですよ。
2
14
 
3
15
 

1

追記

2018/12/19 08:14

投稿

barobaro
barobaro

スコア1286

test CHANGED
@@ -23,3 +23,73 @@
23
23
  dfs[7]
24
24
 
25
25
  ```
26
+
27
+ # 追記
28
+
29
+
30
+
31
+ Colaboratoryでスクレイピング
32
+
33
+ https://imabari.hateblo.jp/entry/2018/04/16/172117
34
+
35
+
36
+
37
+ こちらからURLを変えるだけで動きましたよ
38
+
39
+
40
+
41
+ ```python
42
+
43
+ import pandas as pd
44
+
45
+ import requests
46
+
47
+ from bs4 import BeautifulSoup
48
+
49
+
50
+
51
+
52
+
53
+ url = 'https://www.river.go.jp/kawabou/ipDamGaikyo.do?init=init&areaCd=89&prefCd=4001&townCd=&gamenId=01-0903&fldCtlParty=no'
54
+
55
+
56
+
57
+ headers = {
58
+
59
+ 'User-Agent':
60
+
61
+ 'Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko'
62
+
63
+ }
64
+
65
+
66
+
67
+ r = requests.get(url, headers=headers)
68
+
69
+
70
+
71
+ if r.status_code == requests.codes.ok:
72
+
73
+
74
+
75
+ soup = BeautifulSoup(r.content, 'html5lib')
76
+
77
+
78
+
79
+ result = [[
80
+
81
+ x.get_text(strip=True) for x in y.find_all(['th', 'td'])
82
+
83
+ ] for y in soup.select('body > div.gaikyoCntt > table > tbody > tr ')]
84
+
85
+
86
+
87
+ df = pd.DataFrame(data=result[1:], columns=result[0])
88
+
89
+ df.set_index('ダム名', inplace=True)
90
+
91
+
92
+
93
+ df
94
+
95
+ ```