HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2017
0604
あいうえおwebサイトからデータ所得?6解決


あいうえお

リンク

2017/6/4(Sun) 22:26:30|NO.80115

hspでクイズみたいな問題がのっていて、選択肢を選ぶと自動で〇か×が表示されるようなサイトで
問題を解く前に答えを所得する方法はありますか?



この記事に返信する


jsAster

リンク

2017/6/4(Sun) 22:49:08|NO.80117

無理じゃないですかね。

形式にもよると思いますが。



Tsubame

リンク

2017/6/6(Tue) 18:23:56|NO.80133

「hspinet.as」モジュールを使うことで、webサイトが吐き出すコードを取得することは可能です。

ただし、取得したデータを処理する必要があるため、HSPよりもHTMLなど、webサイトの構造の知識が必要です。


以下、webサイトのコードを取得し、表示するプログラムです。
「あいうえお」さんが取得したいと思われているサイトのURLを入れてデータを取得してみてください。
取得できたデータに○×を判別できる情報が含まれていれば可能だと思われます。
※下記ソースコードはUTF-8のサイト専用です。


#include "encode.as" // 文字コード変換用 #include "hspinet.as" // web接続用 /* ここからモジュール */ #module // URLとローカルの保存先ファイルパスを指定し、取得した内容を返す // URLは、最後に必ず/をつける #defcfunc get_website_html str url, str filename // webサイトから読み込んだデータを入れる sdim html_data,20000 // netinitを実行し、問題なければstatに0が入る netinit@ if( stat==0 ){ neturl@ url // 読み込みたいURLを指定 netload@ filename // ローカルに保存するファイルを指定(無ければ自動生成) // ファイルが存在していれば読み込む exist filename if( strsize!=-1 ) { notesel html_data noteload filename // 改行を変換 strrep html_data, "\n", strf("%c", 13) strrep html_data, strf("%c", 10), strf("%c", 13) strrep html_data, strf("%c", 13), "\n" // 文字コード変換(utf-8 -> SJIS) html_data = utf8n2sjis@(html_data) }else{ html_data = "データを取得できませんでした" } }else{ html_data = "インターネットに接続できませんでした" } return html_data #global /* ここまでモジュール */ // 以下、利用方法のサンプル // この掲示板のトップページのデータを取得しています sdim html_data,20000 screen 0,600,400 pos 0,0 mesbox html_data, 600,400, 5 obj_id = stat // ここでwebサイトからデータを取得する関数を実行し、html_dataに代入 html_data = get_website_html("https://www.yahoo.co.jp/","index.html") // メッセージボックスの内容を更新 objprm obj_id,html_data



あいうえお

リンク

2017/6/6(Tue) 20:42:56|NO.80134

回答ありがとうございます
TsubameサンのコードでURLを書き換えて実行してみると
htmlのコードは出てくるのですが、コードの中に
<title>The page you were looking for doesn't exist (404)</title>
と出ていて、ページが見つからないみたいです。

#include "encode.as" // 文字コード変換用 #include "hspinet.as" // web接続用 /* ここからモジュール */ #module // URLとローカルの保存先ファイルパスを指定し、取得した内容を返す // URLは、最後に必ず/をつける #defcfunc get_website_html str url, str filename // webサイトから読み込んだデータを入れる sdim html_data,20000 // netinitを実行し、問題なければstatに0が入る netinit@ if( stat==0 ){ neturl@ url // 読み込みたいURLを指定 netload@ filename // ローカルに保存するファイルを指定(無ければ自動生成) // ファイルが存在していれば読み込む exist filename if( strsize!=-1 ) { notesel html_data noteload filename // 改行を変換 strrep html_data, "\n", strf("%c", 13) strrep html_data, strf("%c", 10), strf("%c", 13) strrep html_data, strf("%c", 13), "\n" // 文字コード変換(utf-8 -> SJIS) html_data = utf8n2sjis@(html_data) }else{ html_data = "データを取得できませんでした" } }else{ html_data = "インターネットに接続できませんでした" } return html_data #global /* ここまでモジュール */ // 以下、利用方法のサンプル // この掲示板のトップページのデータを取得しています sdim html_data,20000 screen 0,600,400 pos 0,0 mesbox html_data, 600,400, 5 obj_id = stat // ここでwebサイトからデータを取得する関数を実行し、html_dataに代入 html_data = get_website_html("https://student.espire.jp/vocabulary/practice/list/","index.html") // メッセージボックスの内容を更新 objprm obj_id,html_data
書き方はこれであっていますか?
あと、このサイトはログインしないといけないのですがそれでもいけますか?



Tsubame

リンク

2017/6/7(Wed) 15:00:29|NO.80140

><title>The page you were looking for doesn't exist (404)</title>
>と出ていて、ページが見つからないみたいです

そのサイトは、ログインしていないとログインページにリダイレクトされるようですね。
上記このプログラムですと、サーバー上の設定(.htaccess等)を受けないので、リダイレクトされずに404になってるみたいです。



>書き方はこれであっていますか?
>あと、このサイトはログインしないといけないのですがそれでもいけますか?

書き方は大丈夫ですが、ログインには対応しておりません。
ログインしたうえで取得等を行うのであれば、ブラウザのようにログイン情報を渡したりする必要がありそうです。
申し訳ないですが、その辺は専門外なので...



Velgail

リンク

2017/6/7(Wed) 15:49:17|NO.80141

ログイン環境のデータをクッキーで保存している場合は、以下の方法的解決が有効かも。
http://hsp.tv/play/pforum.php?mode=pastwch&num=73802

あとは、Chrome等でF12でどんなフラグつけてるかを確認して頑張ってくださいとしか?



あいうえお

リンク

2017/6/9(Fri) 22:25:23|NO.80162

解凍していただいた皆さんありがとうございました
この辺のこと全然わからないので、もっと勉強していろいろ試してみます



ONION software Copyright 1997-2018(c) All rights reserved.