質問編集履歴
7
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -160,7 +160,7 @@
|
|
160
160
|
|
161
161
|
"frame_page.body を 目的のファイルに書き込み"
|
162
162
|
|
163
|
-
path = "/home/
|
163
|
+
path = "/home/ユーザ名/Desktop/file "
|
164
164
|
|
165
165
|
filename = path
|
166
166
|
|
6
修正
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
修正
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
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
修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
mechanizeでHTMLframeのsrc属性のファイルをダウンロードしたい
|
test
CHANGED
@@ -6,7 +6,11 @@
|
|
6
6
|
|
7
7
|
Rubyでファイルをダウンロードし、指定したディレクトリに保存させたいです。
|
8
8
|
|
9
|
+
> mechanize.rb
|
10
|
+
|
11
|
+
|
12
|
+
|
9
|
-
|
13
|
+
をcronに登録し、時間になると実行して、ダウンロードさせたいと思っています。
|
10
14
|
|
11
15
|
|
12
16
|
|
@@ -84,11 +88,17 @@
|
|
84
88
|
|
85
89
|
保存したいファイルは、
|
86
90
|
|
87
|
-
|
91
|
+
> DataListHyou.php?MstCode=01234567&Time=yyyymmddhhの形式
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
です。
|
88
96
|
|
89
97
|
保存したい場所は、
|
90
98
|
|
91
|
-
|
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
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
RubyでHTMLframeのsrcのファイルをダウンロードしたい
|
1
|
+
RubyでHTMLframeのsrc属性のファイルをダウンロードしたい
|
test
CHANGED
File without changes
|
1
修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
Rubyで
|
1
|
+
RubyでHTMLframeのsrcのファイルをダウンロードしたい
|
test
CHANGED
File without changes
|