質問するログイン新規登録

質問編集履歴

7

修正

2017/01/21 07:05

投稿

dlrowolleh
dlrowolleh

スコア120

title CHANGED
File without changes
body CHANGED
@@ -79,7 +79,7 @@
79
79
  frame_url = frame["src"]
80
80
  frame_page = agent.get(frame_url)
81
81
  "frame_page.body を 目的のファイルに書き込み"
82
- path = "/home/h28-sotuken/Desktop/file "
82
+ path = "/home/ユーザ名/Desktop/file "
83
83
  filename = path
84
84
  save_as(filename)
85
85
  end

6

修正

2017/01/21 07:05

投稿

dlrowolleh
dlrowolleh

スコア120

title CHANGED
File without changes
body CHANGED
@@ -149,4 +149,8 @@
149
149
 
150
150
  #<Mechanize::Page:0x00556b3c27c700>
151
151
  ```
152
- となります。
152
+ となります。
153
+
154
+ やりたいこと、させたい動作はイメージできますが、やり方等知識が圧倒的に不足しています。
155
+ 知恵をお貸しいただけないでしょうか。
156
+ よろしくお願いしたします。

5

修正

2016/11/17 12:03

投稿

dlrowolleh
dlrowolleh

スコア120

title CHANGED
File without changes
body CHANGED
@@ -98,4 +98,55 @@
98
98
  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'
99
99
  from mechanize.rb:8:in `<main>'
100
100
  ```
101
- と表示されました。
101
+ と表示されました。
102
+
103
+ また、
104
+ ```ruby
105
+ require "mechanize"
106
+
107
+ agent = Mechanize.new
108
+
109
+ agent.user_agent_alias = "Windows Chrome"
110
+ url = "http://example.com/DataList.php?MstCode=01234567"
111
+ page = agent.get(url)
112
+
113
+ page.root.xpath("//frame").each do |frame|
114
+ if frame["name"] == "Hyou"
115
+ frame_url = frame["src"]
116
+ frame_page = agent.get(frame_url)
117
+ "frame_page.body を 目的のファイルに書き込み"
118
+ end
119
+
120
+ p frame_page
121
+ puts frame_page
122
+ end
123
+
124
+ ```
125
+ では、
126
+ > $ ruby mechanize.rb
127
+
128
+ ```
129
+ nil
130
+
131
+ #<Mechanize::Page
132
+ {url
133
+ #<URI::HTTP http://example.com/DataList.php?MstCode=01234567>}
134
+ {meta_refresh}
135
+ {title "ホームページ"}
136
+ {iframes}
137
+ {frames}
138
+ {links}
139
+ {forms
140
+ #<Mechanize::Form
141
+ {name "Form1"}
142
+ {method "GET"}
143
+ {action ""}
144
+ {fields [hidden:0x2ab59e31d368 type: hidden name: Err value: ]}
145
+ {radiobuttons}
146
+ {checkboxes}
147
+ {file_uploads}
148
+ {buttons}>}>
149
+
150
+ #<Mechanize::Page:0x00556b3c27c700>
151
+ ```
152
+ となります。

4

syusei

2016/11/17 11:55

投稿

dlrowolleh
dlrowolleh

スコア120

title CHANGED
File without changes
body CHANGED
@@ -65,7 +65,7 @@
65
65
  > home/(ユーザ名)/Desktop/ファイル
66
66
 
67
67
  です
68
-
68
+ [Mechanize::File - Seesaa Wiki(ウィキ)](http://seesaawiki.jp/ruby_mechanize/d/Mechanize%3A%3AFile#filename=)を参考にしたのですが、うまくいきませんでした。
69
69
  ```
70
70
  require "mechanize"
71
71
  agent = Mechanize.new

3

修正

2016/11/17 08:22

投稿

dlrowolleh
dlrowolleh

スコア120

title CHANGED
@@ -1,1 +1,1 @@
1
- RubyでHTMLframeのsrc属性のファイルをダウンロードしたい
1
+ mechanizeでHTMLframeのsrc属性のファイルをダウンロードしたい
body CHANGED
@@ -2,8 +2,10 @@
2
2
  あるウェブサイトからファイルを取得したいと考えています。
3
3
  ファイルは一時間ごとに更新されるため、ファイル名も年月日時間で変化します。
4
4
  Rubyでファイルをダウンロードし、指定したディレクトリに保存させたいです。
5
- `download.rb`をcronに登録し、時間になると実行して、ダウンロードさせたいと思っています。
5
+ > mechanize.rb
6
6
 
7
+ をcronに登録し、時間になると実行して、ダウンロードさせたいと思っています。
8
+
7
9
  ###試したこと
8
10
  ```ruby
9
11
  #download.rb
@@ -41,9 +43,12 @@
41
43
  ```
42
44
  と表示されました。
43
45
  保存したいファイルは、
44
- `DataListHyou.php?MstCode=01234567&Time=yyyymmddhhの形式`です。
46
+ > DataListHyou.php?MstCode=01234567&Time=yyyymmddhhの形式
47
+
48
+ です。
45
49
  保存したい場所は、
46
- `/home/(ユーザ名)/Desktop/2016/sample/html/1_ロハ`
50
+ > /home/(ユーザ名)/Desktop/ファ
51
+
47
52
  です。
48
53
 
49
54
  また、文字化けにも対応したいです。
@@ -52,4 +57,45 @@
52
57
 
53
58
  ###補足情報(言語/FW/ツール等のバージョンなど)
54
59
  Ubuntu15.10
55
- Ruby2.2.4です。
60
+ Ruby2.2.4です。
61
+
62
+ #追記
63
+ ファイル名はそのままで保存したいです。
64
+ 保存したい場所は
65
+ > home/(ユーザ名)/Desktop/ファイル
66
+
67
+ です
68
+
69
+ ```
70
+ require "mechanize"
71
+ agent = Mechanize.new
72
+ agent.user_agent_alias = "Windows Chrome"
73
+
74
+ url = "http://soramame.taiki.go.jp/DataList.php?MstCode=34204520"
75
+
76
+ page = agent.get(url)
77
+ page.root.xpath("//frame").each do |frame|
78
+ if frame["name"] == "Hyou"
79
+ frame_url = frame["src"]
80
+ frame_page = agent.get(frame_url)
81
+ "frame_page.body を 目的のファイルに書き込み"
82
+ path = "/home/h28-sotuken/Desktop/file "
83
+ filename = path
84
+ save_as(filename)
85
+ end
86
+ end
87
+
88
+ puts page.body.force_encoding(page.encoding).encode("utf-8")
89
+
90
+ ```
91
+ > $ ruby mechanize.rb
92
+
93
+ と実行したところ
94
+ ```
95
+ mechanize.rb.rb:15:in `block in <main>': undefined method `save_as' for main:Object (NoMethodError)
96
+ 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'
97
+ 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'
98
+ 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'
99
+ from mechanize.rb:8:in `<main>'
100
+ ```
101
+ と表示されました。

2

kousin

2016/11/17 08:19

投稿

dlrowolleh
dlrowolleh

スコア120

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

1

修正

2016/11/16 10:24

投稿

dlrowolleh
dlrowolleh

スコア120

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