I try to make a table by getting together four list. My code as below:
from selenium import webdriver
import time
driver_path= "C:\\Users\\Bacanli\\Desktop\\chromedriver.exe"
browser=webdriver.Chrome(driver_path)
browser.get("http://www.bddk.org.tr/BultenHaftalik")
time.sleep(3)
Krediler=browser.find_element_by_xpath("//*[@id='tabloListesiItem-253']/span")
Krediler.click()
elements = browser.find_elements_by_css_selector("td.ortala:nth-child(2)")
TPs=browser.find_elements_by_css_selector("td[data-label='TP']")
YPs=browser.find_elements_by_css_selector("td[data-label='YP']")
Toplams=browser.find_elements_by_css_selector("td[data-label='Toplam']")
My intend is that make a new table by getting together elements, TPs, YPs, Toplams. Thanks for your helping.
Pandas
makes this easy for you:
import pandas as pd
df = pd.read_html('http://www.bddk.org.tr/BultenHaftalik')
will create a list of pandas dataframes from html tables on the page. The table you want is df[3]
.
Result df[3].head()
:
Unnamed: 0 | Sektör / Krediler ( 9 Temmuz 2021 Cuma ) (Milyon TL) | TP | YP | TOPLAM | |
---|---|---|---|---|---|
0 | 1 | Toplam Krediler (2+10) | 2.479.94928 | 1.427.80395 | 3.907.75323 |
1 | 2 | Tüketici Kredileri ve Bireysel Kredi Kartları (3+7) | 877.62363 | 30181 | 877.92544 |
2 | 3 | Tüketici Kredileri (4+5+6) | 710.18775 | 11070 | 710.29845 |
3 | 4 | a) Konut | 278.38213 | 7473 | 278.45686 |
4 | 5 | b) Taşıt | 14.91958 | 000 | 14.91958 |
export to csv with df[3].to_csv('filename.csv')
(or you could use the export to excel button above the table on the website)