2017-08-02 8 views
2

テーブルから値を取得しようとしていますが、HTMLにはありません。しかし、は、ブラウザでHTMLを調べるととなります。私はそれらが動的に生成されていると推測していますが、どのようにSeleniumやPythonの別の方法でそれらをキャプチャしますか?PythonとSeleniumを使ったWebスクラップ、動的データの取得方法がわからない

+0

の表を読んでください。右の表を参考にしてください。 – ksai

答えて

0

あなたは、このコードは、テーブルのみを取り出し、この

from selenium import webdriver 
import pandas as pd 
import time 

driver = webdriver.Chrome() 
driver.get('https://www.predictit.org/Contract/7422/Will-Trump-veto-Russian-sanctions-bill-by-August-31#prices') 

time.sleep(2) 
tables = pd.read_html(driver.page_source) # returns list of dataframes 
print(len(tables)) 
print(tables[2]) # this is table with YES 
print(tables[3]) # this is the table with NO 

のように行うことができますが、いくつかのクリーニングを行う必要があります。 pandas.DataFrame

+0

一度必要なすべてのモジュールをインストールしたら、そのトリックを実行しました。ありがとうございました! "データフレーム"が正確に何かを調べなければなりません。 – svadhisthana

+0

レコードについては、このソリューションが機能する前に[価格]タブをクリックする必要があります。したがって、 "elem = driver.find_element_by_id( 'getPrices') elem.click()"がコード内にある必要があります。 – svadhisthana

+0

私が開いた 'url'は'#prices'を含んでいます。だから私は要素を見つける必要はありません。 – ksai

関連する問題