1
トロント証券取引所からインサイダー取引情報を抽出するコードを書いた。 Seleniumを使用して、this linkを開き、在庫のリストを使用して、フォームに1つずつ入力し、データを取得して別のリストに入れて、次の在庫に対して同じ処理を行います。ここでSelenium/Python - Lag In Code?
コードです:
from selenium import webdriver
stocks = ['RKN','MG','GTE','IMO','REI.UN','RY']
dt = []
url = 'https://app.tmxmoney.com/research/insidertradesummaries?locale=EN'
driver = webdriver.Firefox()
driver.get(url)
search = driver.find_element_by_xpath('//ul[@class="nav nav-pills"]/li[3]')
search.click()
stock_form = driver.find_element_by_name('text')
for stock in stocks:
stock_form.clear()
stock_form.send_keys(stock)
stock_form.submit()
data = driver.find_element_by_xpath('//div[@class="insider-trades-symbol-search-container"]/div[@class="ng-binding"]')
a = data.text.split('\n')
if len(a) > 1:
dt.append(a[-1].split())
else:
dt.append([])
driver.close()
あなたがコードを実行する場合は、各株式は、フォームに入力されて見ることができ、データがポップアップ表示されます、私はそれを取得しよう。しかし、私は "データ"からテキストを取得すると、フォームを送信する前にページに表示されていたものから取得したものと同じです。私は無駄にコードに待ち時間を追加しようとしました。
私は実際には最初のものは空のリストである6つの項目を含む 'dt'リストを取得していますが、すべての残りの部分は、' [「RKN」、「1008600」から始まる異なるリストである「0」、 '1,0'、 '1,0'、 '0'、 '0'、 'CDN'] 'で終わり、' ['REI.UN'、'96,717 '、' 0 '、' 2,402,151 '、' 0 '、294 '、' 0 '、' CDN ']'となります。これはあなたがそれを返すものですか?はいの場合は、タイミングの問題があると思います。 – alecxe
はい、ありがとうございます。それが私の言いたいことです。最初のエントリは、dtリストのRKN用でなければなりません。最後は空でなければならず、在庫には何の活動もなかった(私は信じている)。 –
解決策: 'data'と 'a'の間にtime.sleep(1)を追加してください。私はそこに、私が何と呼ぶか、遅れがあると思います。 –