前提
Pythonではなく、
GASを使用してログインが必要なWebページのスクレイピングして、
取得した文字列をGoogleスプレッドシートに出力したいです。
実現したいこと
ログイン後のページのhtml内の要素の取得
↓
eBayアカウントページの
右セクションShipping details内のcustomer name
を取得したいです。
発生している問題・エラーメッセージ
HTMLの取得でつまずきました。
ログの情報がnull
と表示されます。
該当のソースコード
まずは「Shipping details」全体を抜き出そうとしてみました。
javascript
1function gas_login(){ 2 var login_url = "https://www.ebay.com/signin/s"; 3 4 //ログイン情報(PayLoadデータ) 5 var payload_data = { 6 login_id: "sampleAddress@gmail.com", 7 password: "samplePass" 8 }; 9 10 //POSTデータ(POSTオプション) 11 var post_option = { 12 method: "post", 13 payload: payload_data, 14 followRedirects: false 15 }; 16 17 //レスポンス(POSTリクエスト) 18 var response = UrlFetchApp.fetch(login_url, post_option); 19 20 //レスポンスのヘッダーからcookieを取得 21 var cookies = response.getHeaders()["Set-Cookie"]; 22 23 // ログインで認証されたcookieはヘッダーで使用 24 var headers = { Cookie: cookies }; 25 var get_option = { 26 method: "get", 27 headers: headers, 28 followRedirects: true 29 }; 30 var scraping_url = "https://www.ebay.com/sh/ord"; 31 32 response = UrlFetchApp.fetch(scraping_url, get_option); 33 var content = response.getContentText("UTF-8"); 34 35 var regText = /<div class="shipping-details">()<\/div>/; 36 var html = content.match(regText); 37 38 Logger.log(html); 39}
試したこと
・ログインURLの確認
ログイン画面を開いている時のブラウザのバーに表示しているURLではなく、ログイン処理時にPOSTしているログインであることを確認しました。
・取得するタグと文字列の変更
/<title>([\s\S]*?)<\/title>/;
にしたところ、抜き出せたので、
検索の仕方が悪いということですよねきっと。。
もう少し自分でも調査してみます!
補足情報(FW/ツールのバージョンなど)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。