2016-12-04 11 views
-1

私の地元のスポーツクラブのウェブサイトでは、公式リーグのウェブサイトからランキングと結果をコピーして同期させるのが良いでしょう。私はPython 3.5のためにフラスコとセレンを使用しています。セレンとフラスコを使ってウェブサイトからテーブルをコピーする

これまでのところ私は、テーブルを検索し

driver.find_element_by_class_name("table")

を使用しています。これを保存し、これをジンジャーテンプレートに一度に渡す効率的な方法はありますか?または、テーブルのすべての部分(ヘッダ、行、要素)を別々に保存して処理する必要がありますか?

+0

BeautifulSoupの使用を検討してください – Will

答えて

0

あなたは<table>の情報を持っているとして、あなただけの<tr><td>(および可能<th>)に基づいて情報を抽出し、CSVまたは他の構造化ファイル(YAML、JSON)でそれを保存し、用のデータを取る必要がありますそこからジンジャーテンプレート。

データが変更されたときにのみファイルを更新すると、これがより効率的な方法の1つになります。入力(公式リーグテーブル)が変更されると1時間ごとに更新されます。

このデカップリングは、リーグデータが変更されたときなどにも重要です。 <div>および<span>と入力処理を調整する必要があります。

@ BeautifulSoupは、処理するデータが大きい場合、特にセレニウムからHTMLを一度取得し、BeautifulSoupによる処理がはるかに高速である場合に、特に良いものです。 (.select()を使用して)最も簡単に変換されるselenium.find_element_by_css_selector()を使用)の要素を選択するために完全なCSS(クラスだけでなく)を使用することに時間を捜していない場合は、移行を行います。

関連する問題