2017-01-29 2 views
1

私の目標は、変更されたウェブサイトのライブデータを掻き集めることです。 URLの例を次に示します。 http://www.liveticker.com/spiel/6HXLRTtd/#spiel-statistiken;0driver.refresh()を使用せずにライブスポーツデータをスクラップしますか?

私はループのためにPython、Selenium、Timeを使用します。私がFirefoxで何をしたいのか分かりますが、私はPhantomJS(いくつかのブラウザウィンドウを開いていない)を使用したいと思っていましたが、1-4回のリフレッシュの後にはスクレイピングを止めました。

これはなぜ起こったのかと思います。ページを手作業で訪れた場合は、数回リフレッシュする必要がないという画面メッセージが表示されます。しかし、それはFirefoxがまだデータを掻き分けることができるように見えるだけの推測です。

私はPhantomJSがスクレイピングを止め、それについて何をすべきかと思います。ページをリフレッシュまたはリロードせずに、ライブデータ(AJAXと思います)を継続的にスクラップする方法がありますか?

あなたが助けてくれることを願っています。私はこのすべてにかなり新しいものであり、これまでの関連する手がかりは見つかりませんでした。ここで

は、念のために私の関数である。

def get_games_stats(url): 
    driver.get(url) 
    t=2 
    starttime=time.time() 
    t=float(t) 

    while True: 
    time.sleep(t - ((time.time() - starttime) % t)) 
    driver.refresh()   
    time.sleep(5) 

    tabelle = driver.find_element_by_id("tab-statistics-0-statistic") 
    text_tabelle = tabelle.text 
    x = text_tabelle.encode("utf-8") 
    x= [int(s) for s in re.findall(r'\b\d+\b', x)] 

    team_a = x[::2] 
    team_b = x[1::2] 
    print team_a, team_b 

答えて

0

ページ・リフレッシュの警告かもしれないが表示され、時には後、述べてきたように。これにより、コードの実行が妨げられる可能性があります。このアラートを次のように処理してください。

from selenium.common.exceptions import NoAlertPresentException 

while True: 
    time.sleep(t - ((time.time() - starttime) % t)) 
    driver.refresh()   
    time.sleep(5) 

    # This might not work with PhantomJS 
    #try: 
    # driver.switch_to_alert().accept() 
    #except NoAlertPresentException: 
    # pass 

    try: 
     driver.execute_script("window.confirm = function(msg) { return true; }") 
    except: 
     pass 

    tabelle = driver.find_element_by_id("tab-statistics-0-statistic") 
    text_tabelle = tabelle.text 
    x = text_tabelle.encode("utf-8") 
    x= [int(s) for s in re.findall(r'\b\d+\b', x)] 

    team_a = x[::2] 
    team_b = x[1::2] 
    print team_a, team_b 
+0

ありがとうございました!これは私にエラーを投げた:WebDriverException:メッセージ:コマンドメソッドが無効で、 'driver.switch_to_alert()。accept()'行への関数呼び出しの後に参照された。 – user2822564

+0

更新された回答を確認する – Andersson

+0

魅力的な作品!再度、感謝します。 – user2822564

関連する問題