質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Cookie

HTTPにおけるCookieとは、クライアントのウェブブラウザ上に保存された一時的なデータを指します。クライアント側のJavaScriptでも、サーバー側のHTTPヘッダーでもクッキーの読み書き・修正・削除が可能です。

スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

セッション

Sessionはクライアントがサーバに送ったすべてのリクエストのことを指します。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

0回答

671閲覧

WEBスクレイピングにおすすめの言語&書籍を教えてください

退会済みユーザー

退会済みユーザー

総合スコア0

Cookie

HTTPにおけるCookieとは、クライアントのウェブブラウザ上に保存された一時的なデータを指します。クライアント側のJavaScriptでも、サーバー側のHTTPヘッダーでもクッキーの読み書き・修正・削除が可能です。

スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

セッション

Sessionはクライアントがサーバに送ったすべてのリクエストのことを指します。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

2クリップ

投稿2022/09/28 03:01

会社でWEBスクレイピングが必要になり、プログラミングの勉強を始めようと思っています。
よくある状況かと思いますが、以下の条件でおすすめのプログラミング言語、書籍を教えてください。

・VBAは書ける
・Pythonを始めとした外部ライブラリは使用できない
・IEを介すスクレイピングは当然NG
・社員一人一人に付与されるログインIDとパスワードでログイン後のページをスクレイピング
・ログイン後に遷移した別ページもスクレイピングしたい(cookieの利用?)
・セッションIDなどの盗聴をはじめとしたセキュリティ対策が必要(スクレイピング完了後はcookieを自動削除すれば足りる?)

【言語について】
VBAでもやれないことはないというのはだいぶ調べて理解しましたが、コードが複雑になりすぎる感があります。(セキュリティ面でもあんまりよくなさそう?)
そのため現状、比較的に簡単だと言われるPHPを独習しようかと考えています。
Javascriptの方が良いでしょうか?

【書籍に関して】
VBAはおおむね理解しているので、初心者向けすぎる書籍より「多少ならプログラミング分かるよ」という人向けの書籍が望ましいです。

どの言語を使おうがセキュリティ対策は同じレベルで必要なんだろうと推測しますが
スクレイピング関連にお詳しい方や実際にスクレイピングを実践されている方々からご意見いただきたく思います。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2022/09/28 03:18

> ・Pythonを始めとした外部ライブラリは使用できない これは、具体的に何が出来ないのでしょうか?Windows標準装備+Office以外は使えないという意味?
退会済みユーザー

退会済みユーザー

2022/09/28 03:22

分かりづらくて申し訳ありません。 >Windows標準装備+Office以外は使えないという意味? おおむねそのとおりで合っています 私の認識では Python → 外部からのインストールが必要 Selenium → 同上 なので 外部からインストールするものはNGという意味でした なのでPHPもダメかな?と思ってるのですが、いかがでしょうか。 よく調べないうちに質問して申し訳ありません。
Cocode

2022/09/28 03:42

スクレイピングはあまり詳しくないのですが、 > ・Pythonを始めとした外部ライブラリは使用できない この条件でだと、GAS(JavaScriptベースのGoogleアプリ用ツール)が良さそうな気がします。 VBAと考え方が似ていますし、環境構築しなくても使えますし…!
otn

2022/09/28 03:44

PHPもWindows標準では無いので駄目ですね。 OfficeのVBAか、VBScriptか、PowerShellですね。 (IE以外の)ブラウザを制御するのは出来ないため、JavaScriptで画面を作っているようなページは無理。 そういう制限下での書籍は無いと思います。
退会済みユーザー

退会済みユーザー

2022/09/28 03:48 編集

>Cocodeさん ありがとうございます。 GASも一時は有力候補に考えていたのですが 6分制限というのが存在していると知りました。 なので候補から除外していますが、私の認識間違いでしょうか? スクレイピングする数が多いので、恐らく6分を優に超えてしまします
otn

2022/09/28 03:47

> GAS(JavaScriptベースのGoogleアプリ用ツール)が良さそうな気がします。 なるほど。PC内にこだわらなければこれもいいですね。クラウド上のGoogle Docsが組織のセキュリティーポリシー上で利用可能ならそれが良いとお思います。
退会済みユーザー

退会済みユーザー

2022/09/28 03:51

>otnさん コメントありがとうございます。 GASの件も改めて検討してみたいと思いますが、まずは環境次第ですね。 VBSとPowershellも有用な手段とは知っていたのですが、改めて勉強し直す時間を考えたら、VBAが良いのかもしれません。 PHPでもダメとなると……。
Cocode

2022/09/28 03:54

GASは一応トリガーの実行という手段を使えば6分を超える処理を実行できるようです。 https://web-breeze.net/gas-running-over-time-limit/ でもおっしゃるとおり学習コストを考えると慣れたVBAで頑張った方がいいのかもしれませんね。
退会済みユーザー

退会済みユーザー

2022/09/28 04:05

>Cocodeさん トリガーというのがあるんですね! 引き続きVBAでの方法も勉強していきたいと思いますが いずれ別の言語も勉強したいと考えているので、JavaScriptを学びつつ GASでの方法を今のところの有力候補にしたいと思います。 ありがとうございます!
can110

2022/09/28 06:17

スクレイピング対象のWebシステムについての詳細を記載ください。 たとえば - 公開(インターネット)or社内(イントラネット) - ログインシステムの有無とその内容(二段階認証などないか) - 取得対象のデータ(ページ)内容 など。 ちなみにGASだとイントラネットからスクレイピングはできません。
退会済みユーザー

退会済みユーザー

2022/09/28 07:13

>can110さん コメントありがとうございます。 連休中のため会社のPCを確認できないため、おおよその返答となります - 公開(インターネット)or社内(イントラネット) イントラネットの概念を理解していないのですが、PCが会社資産のものでなければアクセスは拒否されますが、自宅のPCでもシステムの入り口にはアクセスできるので公開かと思います。 - ログインシステムの有無とその内容(二段階認証などないか) ログインにはID、PASS、加えてYubikeyも必要ですが、二段階認証が必要になった記憶はありません。 - 取得対象のデータ(ページ)内容 ページ内容をどうお伝えすべきか悩みましたが、具体的にやりたいことは以下のとおりです。 包括的な社内システムにログイン ↓ 社内ツールA(ブラウザ)にアクセス ↓ QRコード化された処理番号をバーコードスキャナーでスキャンして、社内ツールAのinputboxに入力 ↓ submit ↓ 処理番号をもとにした取引番号が出力される ↓ 取引番号を取得 ↓ 取引番号を社内システムB(ブラウザ)に入力 ↓ submit ↓ 取引先企業情報が表示される ↓ 企業名を取得してExcelなりに出力 (ここまでを必要件数分Loop) ↓ Excelなりに出力した企業名をcsv化 以上、分かりづらいかもしれませんが、何か有用な情報があればご教示いただけると幸いです。 また、GASの件、貴重な情報ありがとうございます。
can110

2022/09/28 07:52

自宅からの接続での「システムの入り口」とは具体的にどのようなものでしょうか(VPNなど?) であれば接続先はイントラネット(インターネットに公開されていない)上にある可能性があります。 なお、この欄に記載された内容は目立たないので、質問本文に追記ください。 ただ、これまでの情報、接続PC制限やYubikeyのようなハードウェアトークンを利用しているところなどから、スクレイピング(データの自動取得)対象としてはハードル高いと思われるので まずは社内システム、ツールを管理している(情報システム?)部門に、今回やりたいことを伝えてアドバイスをもらうのがよいかと思います。 もしかしたら専用のAPIなどを用意してくれるかもしれませんし、そのほうが実装ははるかに楽です。
otn

2022/09/28 08:31

> 加えてYubikeyも必要ですが、 まさに二要素認証で、Googleからは無理でしょうね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問