・ブラウザであるサイトにアクセスする(プログラムでアクセスする場合は、ログインが必要です)
・そのサイトにはX件のリンクが存在する
・またページ数はY件存在する
・まずは1ページ目のリンクのみを抽出して配列に入れる
・次のページに行って同じ事をする
・Y件まで行ってすべてのURLを配列に入れる
Windows XPで動作するものであれば何のマクロだろうとプログラムだろうとかまいません。これを行うのに一番簡単なプログラム言語と、大まかなプログラムの流れを教えてください(できればコード付で)。Perlとかはやめてください。VB,Ruby,WSH,Power Shellとかわかりやすいものでお願いします。UWSCでできればそれでもOKです。
Rubyで書いてみましたが,認証が何か分らなかったので含めてはいません.
#Basic認証でしょうか?どのような認証かを書いて頂くと良いかもしれません
http://www.ruby-lang.org/ja/man/html/net_http.html#a.bb.c8.cd.d1...
link変数にhrefで指定したパスが入ります.
#!/usr/bin/ruby # vim:set ts=2 sts=2 sw=2 bs=2 ai si et nu ff=unix ft=ruby: # # $Id$ # require "net/http" SERVER = "www.yahoo.co.jp" PATH = [ "/index.html", # "/page1.html", # "/page2.html", # "/page3.html", ] link = [] Net::HTTP::start(SERVER) do |http| PATH.each do |path| r = http.get(path) body = r.body link << body.scan(/href=\"([^"]+)\"/i) end end PATH.each_index do |idx| puts PATH[idx] + "---begin------------" puts link[idx] puts PATH[idx] + "---end--------------" end exit(0)
WWW::Mechanizeもいいですが、僕のおすすめはhttpclientです。クッキーとかも処理してくれるし。
ページを取得したら正規表現で取得してもよいです。
http://d.hatena.ne.jp/rubikitch/20080627/1214504190
具体的なサイトが示されてないのでプログラムは省略します。
ご回答ありがとうございます。認証の部分は例えば、ユーザーIDとパスワードを入力しないと、その目的のページにアクセスできないという意味です。RubyとかだとWWW::Mechanize を使ってやるかと思っていました。