スクレイピングでPythonからブラウザでスクリプトを強制的に実行またはレンダリングする方法は?

英国人

私はデータスクレイピングと機械学習に取り組んでいます。私はPythonとScrapingの両方に不慣れです。私はこの特定のサイトをこすり取ろうとしています。

https://www.space-track.org/

私が監視したところから、彼らはログインと次のページの間にいくつかのスクリプトを実行します。したがって、それらはそれらのテーブルデータを取得します。私は正常にログインでき、セッションで次のページからもデータを取得できます。不足しているのは、間にスクリプトを実行して取得したデータを取得することです。テーブルのデータが必要です

satcat

ページネーションを実現します。以下は私のコードです

 import requests
from bs4 import BeautifulSoup
import urllib
from urllib.request import urlopen
import html2text
import time
from requests_html import HTMLSession
from requests_html import AsyncHTMLSession
with requests.Session() as s:
    #s = requests.Session()
    session = HTMLSession()

    url = 'https://www.space-track.org/'
    headers = {'User-Agent':'Mozilla/5.0(X11; Ubuntu; Linux x86_64; rv:66.0)Gecko/20100101 Firefox/66.0'}
    login_data = { "identity": "",
         "password": "",
         "btnLogin": "LOGIN"
     }
    login_data_extra={"identity": "", "password": ""}
    preLogin = session.get(url + 'auth/login', headers=headers)
    time.sleep(3)
    print('*******************************')
    print('\n')
    print('data to retrive csrf cookie')
    #print(preLogin.text)
    #soup = BeautifulSoup(preLogin.content,'html.parser')
    #afterpretty = soup.prettify()
    #login_data['spacetrack_csrf_token'] = soup.find('input',attrs={'name':'spacetrack_csrf_token'})['value']
    csrf = dict(session.cookies)['spacetrack_csrf_cookie']
    #csrf = p.headers['Set-Cookie'].split(";")[0].split("=")[-1]
    login_data['spacetrack_csrf_token'] = csrf
    #print(login_data)
   # html = open(p.content).read()
   # print (html2text.html2text(p.text))    

    #login_data['spacetrack_csrf_token'] = soup.find('spacetrack_csrf_token"')
    #print(login_data)

    login = session.post(url+'auth/login',data=login_data,headers=headers,allow_redirects=True)
    time.sleep(1)

    print('****************************************')
    print('\n')
    print('login api status code')
    print(login.url)
    #print(r.url)
    #print(r.content)
    print('******************************')
    print(' ')
    print(' ')
    print('\n')
    print('data post login')
    #async def get_pyclock():
    # r = await session.get(url)
    # await r.html.arender()
    # return r
    #postLogin  = session.run(get_pyclock)




    time.sleep(3)
    postLogin = session.get(url)
    postLogin.html.render(sleep=5, keep_page=True)

ご覧のとおり、requests_htmlライブラリを使用してhtmlをレンダリングしましたが、データの取得に失敗しました。これは私のデータを取得する内部的にjsで実行されるURLです

https://www.space-track.org/master/loadSatCatData

誰かがそのデータやJavaScriptをスクレイプする方法を手伝ってくれますか?

ありがとうございました :)

デブドゥットゴスワミ

あなたはのために行くことができますselenium機能がありますbrowser.execute_script()これは、スクリプトの実行に役立ちます。お役に立てれば :)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

macOSでbashスクリプトを見つけるためにpgrepする方法(またはバックグラウンドで実行されているスクリプトをプログラムで強制終了する方法)?

分類Dev

Rでのウェブスクレイピング:リダイレクトを処理する方法は?

分類Dev

Pythonで実行可能ファイルを使用せずにJSレンダリングページをスクレイプする方法はありますか?

分類Dev

ウェブスクレイピングでPython正規表現を使用してスクリプトから値を抽出する方法は?

分類Dev

ブラウザでPyodide出力をリダイレクト/レンダリングする方法は?

分類Dev

MVC WebGridは、テーブルの前にAJaXスクリプトをレンダリングします。スクリプトセクションでスクリプトを強制的に生成する方法

分類Dev

マウントされたGoogleドライブからスクリプトを実行する方法。問題は、グーグルドライブフォルダの名前にスペースがあることです

分類Dev

エクスポートされたSVGファイルはブラウザで異なる方法でレンダリングされます

分類Dev

実行中にスクレイピングされたアイテムをスクレイピングからカウントし、特定のページ数の後に一時停止またはスリープします

分類Dev

Webサイトからの公開リクエストに応じてアイテムをレンダリングすることを許可できますが、ブラウザーで直接表示することはできませんか?

分類Dev

ステータス付きのリダイレクト:401は「リダイレクトされています」でハングします。リダイレクトを強制するにはどうすればよいですか?

分類Dev

PythonリクエストでTwitterスクレイピングを行うときにoauthを実行する方法

分類Dev

(Python) Scrapy - JS ドロップダウン リストをスクレイピングする方法は?

分類Dev

Bashファイルでforループを介してスクリプトを実行すると、スクリプトは強制的にシングルスレッドになりますか?

分類Dev

デスクトップブラウザがWebサイトでズームインまたはズームアウトすると、cssレンダリングで正確に何が変わりますか?

分類Dev

出力をログファイルにリダイレクトし、同時にプロセスをバックグラウンドで実行できますか?

分類Dev

最初のログイン後にリダイレクトしないで反応します。ただし、強制的にリダイレクトしてログインアクションを再度実行すると、リダイレクトされます

分類Dev

スクレイピングされたリンクからPDFをダウンロードする方法[Python]?

分類Dev

Pythonウェブスクレイピングスクリプトでエラーの例外を作成する

分類Dev

ウェブスクレイピングにリダイレクトされたURLを取得する方法?

分類Dev

JavaFX ComboBoxドロップダウンリストセルを強制的に再レンダリングするにはどうすればよいですか?

分類Dev

アプリケーションがバックグラウンドで実行されたときにスレッドが強制終了されましたか?

分類Dev

テザリングを使用しているときに、特定のWebサイトがデスクトップブラウザのモバイルインターフェイスを強制するのはなぜですか?

分類Dev

関連するオブジェクトで注釈または集計を実行し、テンプレートでレンダリングしますか?

分類Dev

QRをスキャンした後に表示されるプレーンテキストをクリック可能にして、ユーザーをブラウザにリダイレクトするにはどうすればよいですか?

分類Dev

グーグルアプリスクリプトでグーグルカレンダーのサブスクライブされた(URL)カレンダーの更新/同期を強制する

分類Dev

Webスクレイピング-Angular.jsを介してJavaScriptでレンダリングされたコンテンツにアクセスする方法は?

分類Dev

CSS:レンダリングされたピクセルの代わりにSVGグループ領域にカーソルを合わせると、ポインターイベント:バウンディングボックスがブラウザー間で機能しません。回避方法

分類Dev

iOSでユーザーをブラウザからアプリケーションにリダイレクトする方法は?

Related 関連記事

  1. 1

    macOSでbashスクリプトを見つけるためにpgrepする方法(またはバックグラウンドで実行されているスクリプトをプログラムで強制終了する方法)?

  2. 2

    Rでのウェブスクレイピング:リダイレクトを処理する方法は?

  3. 3

    Pythonで実行可能ファイルを使用せずにJSレンダリングページをスクレイプする方法はありますか?

  4. 4

    ウェブスクレイピングでPython正規表現を使用してスクリプトから値を抽出する方法は?

  5. 5

    ブラウザでPyodide出力をリダイレクト/レンダリングする方法は?

  6. 6

    MVC WebGridは、テーブルの前にAJaXスクリプトをレンダリングします。スクリプトセクションでスクリプトを強制的に生成する方法

  7. 7

    マウントされたGoogleドライブからスクリプトを実行する方法。問題は、グーグルドライブフォルダの名前にスペースがあることです

  8. 8

    エクスポートされたSVGファイルはブラウザで異なる方法でレンダリングされます

  9. 9

    実行中にスクレイピングされたアイテムをスクレイピングからカウントし、特定のページ数の後に一時停止またはスリープします

  10. 10

    Webサイトからの公開リクエストに応じてアイテムをレンダリングすることを許可できますが、ブラウザーで直接表示することはできませんか?

  11. 11

    ステータス付きのリダイレクト:401は「リダイレクトされています」でハングします。リダイレクトを強制するにはどうすればよいですか?

  12. 12

    PythonリクエストでTwitterスクレイピングを行うときにoauthを実行する方法

  13. 13

    (Python) Scrapy - JS ドロップダウン リストをスクレイピングする方法は?

  14. 14

    Bashファイルでforループを介してスクリプトを実行すると、スクリプトは強制的にシングルスレッドになりますか?

  15. 15

    デスクトップブラウザがWebサイトでズームインまたはズームアウトすると、cssレンダリングで正確に何が変わりますか?

  16. 16

    出力をログファイルにリダイレクトし、同時にプロセスをバックグラウンドで実行できますか?

  17. 17

    最初のログイン後にリダイレクトしないで反応します。ただし、強制的にリダイレクトしてログインアクションを再度実行すると、リダイレクトされます

  18. 18

    スクレイピングされたリンクからPDFをダウンロードする方法[Python]?

  19. 19

    Pythonウェブスクレイピングスクリプトでエラーの例外を作成する

  20. 20

    ウェブスクレイピングにリダイレクトされたURLを取得する方法?

  21. 21

    JavaFX ComboBoxドロップダウンリストセルを強制的に再レンダリングするにはどうすればよいですか?

  22. 22

    アプリケーションがバックグラウンドで実行されたときにスレッドが強制終了されましたか?

  23. 23

    テザリングを使用しているときに、特定のWebサイトがデスクトップブラウザのモバイルインターフェイスを強制するのはなぜですか?

  24. 24

    関連するオブジェクトで注釈または集計を実行し、テンプレートでレンダリングしますか?

  25. 25

    QRをスキャンした後に表示されるプレーンテキストをクリック可能にして、ユーザーをブラウザにリダイレクトするにはどうすればよいですか?

  26. 26

    グーグルアプリスクリプトでグーグルカレンダーのサブスクライブされた(URL)カレンダーの更新/同期を強制する

  27. 27

    Webスクレイピング-Angular.jsを介してJavaScriptでレンダリングされたコンテンツにアクセスする方法は?

  28. 28

    CSS:レンダリングされたピクセルの代わりにSVGグループ領域にカーソルを合わせると、ポインターイベント:バウンディングボックスがブラウザー間で機能しません。回避方法

  29. 29

    iOSでユーザーをブラウザからアプリケーションにリダイレクトする方法は?

ホットタグ

アーカイブ