人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

マクロかプログラムで以下の事をやりたいと思っています。
・ブラウザであるサイトにアクセスする(プログラムでアクセスする場合は、ログインが必要です)
・そのサイトにはX件のリンクが存在する
・またページ数はY件存在する
・まずは1ページ目のリンクのみを抽出して配列に入れる
・次のページに行って同じ事をする
・Y件まで行ってすべてのURLを配列に入れる

Windows XPで動作するものであれば何のマクロだろうとプログラムだろうとかまいません。これを行うのに一番簡単なプログラム言語と、大まかなプログラムの流れを教えてください(できればコード付で)。Perlとかはやめてください。VB,Ruby,WSH,Power Shellとかわかりやすいものでお願いします。UWSCでできればそれでもOKです。

●質問者: popattack
●カテゴリ:コンピュータ インターネット
✍キーワード:Perl POWER Ruby URL UWSC
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● poch-7003
●35ポイント

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)
◎質問者からの返答

ご回答ありがとうございます。認証の部分は例えば、ユーザーIDとパスワードを入力しないと、その目的のページにアクセスできないという意味です。RubyとかだとWWW::Mechanize を使ってやるかと思っていました。


2 ● るびきち
●35ポイント

WWW::Mechanizeもいいですが、僕のおすすめはhttpclientです。クッキーとかも処理してくれるし。

ページを取得したら正規表現で取得してもよいです。

http://d.hatena.ne.jp/rubikitch/20080627/1214504190

具体的なサイトが示されてないのでプログラムは省略します。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ