@th8687rr

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

python selenium pandas 一部情報のみ取得

解決したいこと

https://etherscan.io/token/0x846c66cf71c43f80403b51fe3906b3599d63336f#balances
このサイトで下記コードの指定情報を「全て」取得したいが、一部情報しかエクセル(or csv)に取得できない。
現状のコードでは、一番最後の情報のみエクセル(or csv)に反映されている状況です。
どうすれば、全情報を書き込めるのか教えてください。

該当するソースコード

from selenium import webdriver
from time import sleep
import pandas as pd

options = webdriver.ChromeOptions()
#options.add_argument('--headless')

driver = webdriver.Chrome(options = options)
driver.implicitly_wait(10)

driver.get('https://etherscan.io/token/0x846c66cf71c43f80403b51fe3906b3599d63336f#balances')
sleep(1)

iframe = driver.find_element_by_css_selector('#tokeholdersiframe')
driver.switch_to.frame(iframe)

address_site = driver.find_elements_by_css_selector('table.table > tbody > tr > td:nth-of-type(2) > span > a')

addresses = [e.get_attribute('href') for e in address_site]

for address in addresses:
    driver.get(address)
    sleep(1)

    iframe_2 = driver.find_element_by_css_selector('#tokentxnsiframe')
    driver.switch_to.frame(iframe_2)

    past_days = driver.find_elements_by_css_selector('table.table > tbody > tr > td:nth-of-type(5) > span')
    label = driver.find_elements_by_css_selector('table.table > tbody > tr > td:nth-of-type(7) > span')
    quantity = driver.find_elements_by_css_selector('table.table > tbody > tr > td:nth-of-type(9)')

    d_list = []
    for p,l,q in zip(past_days,label,quantity):
        p_days = p.text
        lab = l.text
        qua = q.text

        d = {
            'When?':p_days,
            'Label?':lab,
            'How much?':qua
            }

        d_list.append(d)

    df = pd.DataFrame(d_list)
    print(df)
    df.to_csv('puma_num.csv',index=None,encoding='utf-8-sig')

0 likes

1Answer

forの度にCSVファイルが上書きされていませんか?
ファイル名を都度変更してみてください。

1Like

Comments

  1. @th8687rr

    Questioner

    解決できました!ありがとうございます。

Your answer might help someone💌