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

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

新規登録して質問してみよう
ただいま回答率
85.48%
スクレイピング

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

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

403閲覧

Error Occured : Failed to operate left operand --> @if(&SESSION_initpageopt==0);home@end_if;"

LEPIDOPTERA

総合スコア2

スクレイピング

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

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2022/10/02 02:28

編集2022/10/02 03:20

前提

ログインが必要なサイト(https://web-m.cc.oita-u.ac.jp/cgi-bin/index.cgi )でスクレイピングをしようとしました。frameタグが3つあり、1つだけ Error Occured : Failed to operate left operand となっており、srcのリンクを開いても、中身を確認することはできませんでした。

【ブラウザのデベロッパーツール】
イメージ説明

【PythonのBeutifulSoup】
イメージ説明

【問題となっているリンクのBeutifulSoup】
イメージ説明

実現したいこと

https://web-m.cc.oita-u.ac.jp/cgi-bin/topframe.cgi?focus= のHTML構造をBeutifulSoupで確認したい。

該当のソースコード

Python

1import requests 2from bs4 import BeautifulSoup 3import re 4import pandas as pd 5 6USER = "+++++" 7PASS = "++++" 8 9# 1.ログインページにアクセスする 10url_login = "https://web-m.cc.oita-u.ac.jp/cgi-bin/index.cgi" 11session = requests.session() 12# ログインページへのアクセス完了 13req_before_login = session.get(url_login) 14 15# ログインするための情報を準備する 16login_data = { 17 "domain": 'oita-u.ac.jp', 18 "ismultisite": '', 19 "chglang": '', 20 "lang": '', 21 "id": USER, 22 "pwd": PASS,} 23 24# 2. ログインページで認証を行い、管理者ページへ遷移する 25req_after_login = session.post(url_login, data=login_data) 26 27# 3. 認証完了後のページで他ページへ遷移を行う 28 29url_group ='https://web-m.cc.oita-u.ac.jp/cgi-bin/topframe.cgi?focus=' 30req_group = session.get(url_group,timeout=(3,30)) 31soup = BeautifulSoup(req_group.text, 'lxml') 32print(soup) 33#soup.text

試したこと

Error内容をそのまま検索してみましたが、ヒットしませんでした。
sessionoutという文字があったので、よくわからず、timeout=(3,30)を付け足してみたりしましたが、何も変わりませんでした。

補足情報(FW/ツールのバージョンなど)

当該サイトの利用規約は確認しております。

MacOS Monterey バージョン12.5.1

エラーとなっていないframeタグのリンクは通常通り開くことができました。

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

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

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

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

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

melian

2022/10/02 02:36

掲載されているスクリプトに認証情報(ユーザ名とパスワード)が表示されていますが、問題ありませんか?
LEPIDOPTERA

2022/10/02 03:35 編集

ありがとうございます。 危ないところでした、すぐにパスワードを変更し、ログアウトしました。
guest

回答1

0

ベストアンサー

一般論として、ブラウザの挙動とまったく同じHTTPリクエストをPythonから送信できれば、結果もブラウザと同じになるはずです。なのに同じにならないのは、どこか違いがあるということになります。
スクレイピングでよくあるケースとしては、以下のリクエストヘッダです。

  • Referer
  • User-Agent

ですが、失礼ながら質問者さんの手に負えないのではないでしょうか。デバッグ過程で何回もエラーになっていると思いますが、これ、結構怪しいですよ。スクレイピング自体は合法な行為だと私は考えていますが、同じIPアドレスから継続的に認証エラーを起こしていることは、怪しまれても仕方ないと思いますので、この辺であきらめて、もう少し簡単なものからトライされたらどうでしょうか。

投稿2022/10/02 06:55

ockeghem

総合スコア11701

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

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

LEPIDOPTERA

2022/10/02 07:39

そうですね、自分にはまだ早かったようです。 もう少し簡単なサイトから始めてみます。 本当にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問