みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
こちらでWebビューアを使った方法は拝見させて頂きました。
定期的に収集したいのでサーバで処理を行いたいのですが
何か方法はありますでしょうか?
スクリプトスケジュールを使えばいいのでは?「方法」がユーザ操作を使うのだったら無理ですが。
こちらでWebビューアを使った方法は確認しました。
[解決] WEBビューアに取り込んだウェブページを全コピー
https://fm-aid.com/bbs2/viewtopic.php?pid=48094#p48094
サーバですとWebビューアが使えませんよね?
他に何か方法がないかなと思いました。
宜しくお願いします!
Headless Chrome を使うとコマンドラインでレンダリング後のHTMLソースを取得することができます。
参考:
WEBビューアに取り込んだウェブページを全コピー
https://fm-aid.com/bbs2/viewtopic.php?pid=48287#p48287
コマンドを実行し、戻り値が取得できるプラグイン等であれば、上記記載の「ProcessMakerTL」でなくてもソースを取得することができます。
ScriptMakerPSでの例:
変数を設定 [ $Script; 値:"[Console]::OutputEncoding =[System.Text.Encoding]::UTF8; cmd /c \"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe\" --enable-logging --headless --disable-gpu --dump-dom https://fm-aid.com/bbs2/viewforum.php?id=2 ;" ]
フィールド設定 [ web::f1; SMPS_Exe( $Script ) ]
ScriptMakerPS | FileMaker Plugin for Windows
https://sites.google.com/site/scriptmakerps/
FileMaker Serverのスクリプトスケジュールを使用すれば、プラグインなしでも出来なくは無いと思いますが、色々面倒でしょう...
Offline
qb_dpさん
ありがとうございます!
さっそく試したいのですが 変数を設定 にそのままコピペすると
「ダブルクォーテーションマークで終わらなければなりません」となります。
最後が「--enable-lo」で終わっているのですが続きがあるのでしょうか?
FileMaker Serverのスクリプトスケジュールを使えば出来るのですか・・・?
スクリプトスケジュールはスクリプトをスケジュール通りに実行するだけと思っていたのですが
私にはまだ理解が出来ていないようです^^;
「ScriptMakerPSでの例:」を試しているのでしょうか?
[ code ]タグで記述したので隠れてしまっていました。
変数を設定 [ $Script; 値:"[Console]::OutputEncoding =[System.Text.Encoding]::UTF8; cmd /c \"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe\" --enable-logging --headless --disable-gpu --dump-dom https://fm-aid.com/bbs2/viewforum.php?id=2 ;" ]
フィールド設定 [ web::f1; SMPS_Exe( $Script ) ]
FileMaker Serverのスクリプトスケジュールを使えば出来るのですか・・・?
スクリプトスケジュールはスクリプトをスケジュール通りに実行するだけと思っていたのですが
FileMaker Serverのスクリプトスケジュールの「システムスクリプト」や「スクリプトシーケンス」を組み合わせる必要があるでしょう。たぶん...。
Offline
qb_dpさん
ありがとうございます!
コピペをして実行したのですが
? が返ってきます。
プラグインもチェックが入っており使えるはずなのですが
なぜでしょうか・・・?
PowerShellを起動し、以下のスクリプトを実行してみてください。
※chrome.exeのパスは、環境により異なる場合があります。
[Console]::OutputEncoding =[System.Text.Encoding]::UTF8; cmd /c "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --enable-logging --headless --disable-gpu --dump-dom https://fm-aid.com/bbs2/viewforum.php?id=2 ;
FileMakerで以下のスクリプトを実行してみてください。
フィールド設定 [ web::f1; SMPS_Exe( "$PSVersionTable.PSVersion" ) ]
プラグインが正常に動作している場合は、以下のようなPowerShellのバージョンが返されます。
5.1.18362.628
Offline
以前はアドバイスを頂きありがとうございました!
おかげさまで問題なく収集ができました。
また1つ問題がありましたので教えてください!>_<;
こちらを収集したいのですが1ページ目は問題なく出来ます。
https://category.vip.com/suggest.php?ke … 3%E8%A3%99
2ページ目以降を収集するのに、下記のように指定すると取得が出来ませんでした。
https://category.vip.com/suggest.php?ke … %99&page=2
何か方法はありませんでしょうか?
宜しくお願い致します。
URLの部分を ’ シングルクォートで包みましょう。
'https://category.vip.com/suggest.php?ke … %99&page=2'
Offline
おお~!
出来ました!!
ありがとうございます^^
出来ないと思っていたのでとても助かりました^_^v
またまたお知恵を貸して下さい^^;
Instagramを収集したいのですが、初めは問題なくソースを取得出来ていましたが
途中から急にフィード投稿のページを取得しようとすると「ページが見つかりません」となります。
プロフィールの所は収集出来ます。
chomeで開くとプロフィール・フィードどちらも問題なく表示していました。
IEで開くとどちらも「ページが見つかりません」となります。
フィードを取得できる方法はありませんでしょうか?
またプロフィールは下にスクロールしないと
次の投稿を表示したい為に12投稿までしか取得出来ませんでした。
下にスクロールして取得する方法はありますでしょうか?
宜しくお願い致します>_<
以下が参考になるのでは。
https://self-development.info/%E3%82%B9 … %E3%80%91/
スクロールしてスクレイピングとなるとchromeのコマンドラインだけでは無理です。
ブラウザを制御してスクレイピングする必要があります。
FileMakerでブラウザを制御するには、外部プログラムとの連携が必要です。
参考:
FileMakerでGoogle Chrome を操作。Node.js ? puppeteer_lib
https://qbxxdp.blogspot.com/2020/09/fil … odejs.html
FileMaker + Google ChromeでWEBスクレイピング!
https://sites.google.com/site/scriptmak … b-scraping
Offline
InstagramならAPIもあるのでは?
ご回答ありがとうございます!
あれから色々試したところ2日後に以前と同じように取得が出来ました。
ですが30分程度でまた同じ状況になりました。
去年から「ブラウザを経由(操作)しないとスクレイピングできなくなった」のが影響しているようです。
教えて頂いた方法であれば出来るのですね!
ですが私にはまだ難しそうです・・
最悪スクロールなしでもいいのでソースを取得できたら大変助かるのですが>_<;
chromeのデベロッパーツールのElementsをコピーしたらソースを取得できるので
RPAで取得しようと調べましたがどれも高いですね^^;
InstagramのAPIは確か他のユーザ情報やいいね数などが取得出来なかった気がします。
Pages: 1
[ Generated in 0.014 seconds, 9 queries executed - Memory usage: 552.77 KiB (Peak: 573.67 KiB) ]