マクロかプログラムで以下の事をやりたいと思っています。

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

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

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2008/07/08 21:20:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:poch-7003 No.1

回答回数43ベストアンサー獲得回数8

ポイント35pt

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:popattack

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

2008/07/01 23:26:43
id:rubikitch No.2

回答回数120ベストアンサー獲得回数22

ポイント35pt

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

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

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

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

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

  • 不真面目に考えてみた ノイズともいいます(ごめんなさいごめんなさいごめんなさい マクロかプログラムで以下の事をやりたいと思っています。 ・ブラウザであるサイトにアクセスする(
  • 不真面目に考えてみた Youichi’s Log(分家) 2008-07-01 23:27:52
    ノイズともいいます(ごめんなさいごめんなさいごめんなさい マクロかプログラムで以下の事をやりたいと思っています。 ・ブラウザであるサイトにアクセスする(プログラムでアクセス
「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません