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

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

新規登録して質問してみよう
ただいま回答率
85.46%
Beautiful Soup

Beautiful Soupは、Pythonのライブラリの一つ。スクレイピングに特化しています。HTMLデータの構文の解析を行うために、HTMLタグ/CSSのセレクタで抽出する部分を指定することが可能です。

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

Python

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

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

Q&A

0回答

1038閲覧

Python × Beautifulsoup を使用して指定サイトへログインできない

onioonioonio

総合スコア25

Beautiful Soup

Beautiful Soupは、Pythonのライブラリの一つ。スクレイピングに特化しています。HTMLデータの構文の解析を行うために、HTMLタグ/CSSのセレクタで抽出する部分を指定することが可能です。

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

Python

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

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

0グッド

0クリップ

投稿2021/11/22 01:01

編集2021/11/23 04:47

前提・実現したいこと

Python × Beautifulsoupを使用して下記のサイトにログインし受注情報を取得したいのですが、ログインすることができません。

ターゲットサイト
https://www.tradesy.com/

以下のコードを実行しログインできるか試行しましたができませんでした。

該当のソースコード

Python

1import requests 2import lxml 3from bs4 import BeautifulSoup 4 5headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36'} 6 7session = requests.Session() 8 9# Top page url 10url_top = "https://www.tradesy.com" 11 12r = session.post(url_top, headers=headers) 13soup = BeautifulSoup(r.text) 14r.raise_for_status() 15 16auth_token = soup.find('input', {'name':'tradesy_synchronizer'}).get('value') 17 18# login info 19login_info = { 20 "login_modal_email":"Email-Adress", 21 "login_password":"Password", 22 "tradesy_synchronizer":"auth_token" 23} 24 25url_login= "https://www.tradesy.com/login/" 26 27res = session.post(url_login, data=login_info) 28res.raise_for_status() 29

試したこと

1,POSTしている内容が間違っているのかと思い、Chromeデベロッパーツールを使用し「ネットワーク→ドキュメント」タブから、POSTされている内容を確認
結果:何も表示されませんでした。

2,Email,passwordへ適当な値を入力しログインを実行
結果:以下の内容をPOSTしていることを確認しコードを修正しました。

ajax-login email: aaa password: aaa tradesy_synchronizer: 8af0348fcfc416a4ed12157012118dd33210c

3,「ネットワーク→全て」のタブで「Login」ボタンを押したときの挙動を確認
結果:「ajax-login」という名前のタスク(?)が出てくることを確認しWebで色々検索しましたが、解決方法分かりませんでした。

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

mac(m1)
Python 3.9
Google Chrome (最新バージョン)

終わりに

上記の方法でログインできなければ、最終手段としてSeleniumを検討しておりますが、なるべくBeautifulsoup で完結したいと考えております。
どなたかご教示いただければと思います。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問