質問編集履歴

7

修正

2017/01/21 07:05

投稿

dlrowolleh
dlrowolleh

スコア120

test CHANGED
File without changes
test CHANGED
@@ -160,7 +160,7 @@
160
160
 
161
161
  "frame_page.body を 目的のファイルに書き込み"
162
162
 
163
- path = "/home/h28-sotuken/Desktop/file "
163
+ path = "/home/ユーザ名/Desktop/file "
164
164
 
165
165
  filename = path
166
166
 

6

修正

2017/01/21 07:05

投稿

dlrowolleh
dlrowolleh

スコア120

test CHANGED
File without changes
test CHANGED
@@ -301,3 +301,11 @@
301
301
  ```
302
302
 
303
303
  となります。
304
+
305
+
306
+
307
+ やりたいこと、させたい動作はイメージできますが、やり方等知識が圧倒的に不足しています。
308
+
309
+ 知恵をお貸しいただけないでしょうか。
310
+
311
+ よろしくお願いしたします。

5

修正

2016/11/17 12:03

投稿

dlrowolleh
dlrowolleh

スコア120

test CHANGED
File without changes
test CHANGED
@@ -199,3 +199,105 @@
199
199
  ```
200
200
 
201
201
  と表示されました。
202
+
203
+
204
+
205
+ また、
206
+
207
+ ```ruby
208
+
209
+ require "mechanize"
210
+
211
+
212
+
213
+ agent = Mechanize.new
214
+
215
+
216
+
217
+ agent.user_agent_alias = "Windows Chrome"
218
+
219
+ url = "http://example.com/DataList.php?MstCode=01234567"
220
+
221
+ page = agent.get(url)
222
+
223
+
224
+
225
+ page.root.xpath("//frame").each do |frame|
226
+
227
+ if frame["name"] == "Hyou"
228
+
229
+ frame_url = frame["src"]
230
+
231
+ frame_page = agent.get(frame_url)
232
+
233
+ "frame_page.body を 目的のファイルに書き込み"
234
+
235
+ end
236
+
237
+
238
+
239
+ p frame_page
240
+
241
+ puts frame_page
242
+
243
+ end
244
+
245
+
246
+
247
+ ```
248
+
249
+ では、
250
+
251
+ > $ ruby mechanize.rb
252
+
253
+
254
+
255
+ ```
256
+
257
+ nil
258
+
259
+
260
+
261
+ #<Mechanize::Page
262
+
263
+ {url
264
+
265
+ #<URI::HTTP http://example.com/DataList.php?MstCode=01234567>}
266
+
267
+ {meta_refresh}
268
+
269
+ {title "ホームページ"}
270
+
271
+ {iframes}
272
+
273
+ {frames}
274
+
275
+ {links}
276
+
277
+ {forms
278
+
279
+ #<Mechanize::Form
280
+
281
+ {name "Form1"}
282
+
283
+ {method "GET"}
284
+
285
+ {action ""}
286
+
287
+ {fields [hidden:0x2ab59e31d368 type: hidden name: Err value: ]}
288
+
289
+ {radiobuttons}
290
+
291
+ {checkboxes}
292
+
293
+ {file_uploads}
294
+
295
+ {buttons}>}>
296
+
297
+
298
+
299
+ #<Mechanize::Page:0x00556b3c27c700>
300
+
301
+ ```
302
+
303
+ となります。

4

syusei

2016/11/17 11:55

投稿

dlrowolleh
dlrowolleh

スコア120

test CHANGED
File without changes
test CHANGED
@@ -132,7 +132,7 @@
132
132
 
133
133
  です
134
134
 
135
-
135
+ [Mechanize::File - Seesaa Wiki(ウィキ)](http://seesaawiki.jp/ruby_mechanize/d/Mechanize%3A%3AFile#filename=)を参考にしたのですが、うまくいきませんでした。
136
136
 
137
137
  ```
138
138
 

3

修正

2016/11/17 08:22

投稿

dlrowolleh
dlrowolleh

スコア120

test CHANGED
@@ -1 +1 @@
1
- RubyでHTMLframeのsrc属性のファイルをダウンロードしたい
1
+ mechanizeでHTMLframeのsrc属性のファイルをダウンロードしたい
test CHANGED
@@ -6,7 +6,11 @@
6
6
 
7
7
  Rubyでファイルをダウンロードし、指定したディレクトリに保存させたいです。
8
8
 
9
+ > mechanize.rb
10
+
11
+
12
+
9
- `download.rb`をcronに登録し、時間になると実行して、ダウンロードさせたいと思っています。
13
+ をcronに登録し、時間になると実行して、ダウンロードさせたいと思っています。
10
14
 
11
15
 
12
16
 
@@ -84,11 +88,17 @@
84
88
 
85
89
  保存したいファイルは、
86
90
 
87
- `DataListHyou.php?MstCode=01234567&Time=yyyymmddhhの形式`です。
91
+ > DataListHyou.php?MstCode=01234567&Time=yyyymmddhhの形式
92
+
93
+
94
+
95
+ です。
88
96
 
89
97
  保存したい場所は、
90
98
 
91
- `/home/(ユーザ名)/Desktop/2016/sample/html/1_ロハ`
99
+ > /home/(ユーザ名)/Desktop/ファ
100
+
101
+
92
102
 
93
103
  です。
94
104
 
@@ -107,3 +117,85 @@
107
117
  Ubuntu15.10
108
118
 
109
119
  Ruby2.2.4です。
120
+
121
+
122
+
123
+ #追記
124
+
125
+ ファイル名はそのままで保存したいです。
126
+
127
+ 保存したい場所は
128
+
129
+ > home/(ユーザ名)/Desktop/ファイル
130
+
131
+
132
+
133
+ です
134
+
135
+
136
+
137
+ ```
138
+
139
+ require "mechanize"
140
+
141
+ agent = Mechanize.new
142
+
143
+ agent.user_agent_alias = "Windows Chrome"
144
+
145
+
146
+
147
+ url = "http://soramame.taiki.go.jp/DataList.php?MstCode=34204520"
148
+
149
+
150
+
151
+ page = agent.get(url)
152
+
153
+ page.root.xpath("//frame").each do |frame|
154
+
155
+ if frame["name"] == "Hyou"
156
+
157
+ frame_url = frame["src"]
158
+
159
+ frame_page = agent.get(frame_url)
160
+
161
+ "frame_page.body を 目的のファイルに書き込み"
162
+
163
+ path = "/home/h28-sotuken/Desktop/file "
164
+
165
+ filename = path
166
+
167
+ save_as(filename)
168
+
169
+ end
170
+
171
+ end
172
+
173
+
174
+
175
+ puts page.body.force_encoding(page.encoding).encode("utf-8")
176
+
177
+
178
+
179
+ ```
180
+
181
+ > $ ruby mechanize.rb
182
+
183
+
184
+
185
+ と実行したところ
186
+
187
+ ```
188
+
189
+ mechanize.rb.rb:15:in `block in <main>': undefined method `save_as' for main:Object (NoMethodError)
190
+
191
+ from /home/(ユーザ名)/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/nokogiri-1.6.8.1/lib/nokogiri/xml/node_set.rb:187:in `block in each'
192
+
193
+ from /home/(ユーザ名)/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/nokogiri-1.6.8.1/lib/nokogiri/xml/node_set.rb:186:in `upto'
194
+
195
+ from /home/(ユーザ名)/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/nokogiri-1.6.8.1/lib/nokogiri/xml/node_set.rb:186:in `each'
196
+
197
+ from mechanize.rb:8:in `<main>'
198
+
199
+ ```
200
+
201
+ と表示されました。

2

kousin

2016/11/17 08:19

投稿

dlrowolleh
dlrowolleh

スコア120

test CHANGED
@@ -1 +1 @@
1
- RubyでHTMLframeのsrcのファイルをダウンロードしたい
1
+ RubyでHTMLframeのsrc属性のファイルをダウンロードしたい
test CHANGED
File without changes

1

修正

2016/11/16 10:24

投稿

dlrowolleh
dlrowolleh

スコア120

test CHANGED
@@ -1 +1 @@
1
- Rubyでウェブサイトからファイルをダウンロードするプログラムを作成したい
1
+ RubyでHTMLframeのsrcのファイルをダウンロードしたい
test CHANGED
File without changes