bitte auf den folgenden Link finden:Konvertieren von HTML geschabt Daten in Lesen und Schreiben von CSV-Datei Python BeautifulSoup mit
http://www.bseindia.com/stock-share-price/stockreach_financials.aspx?scripcode=505200&expandable=0
Ich habe versucht, die folgenden:
from bs4 import BeautifulSoup as soup
import csv
from pandas import read_csv
import requests
file_path=r'C:\Users\PreciseT3\Desktop\EicherStockDetails.csv'
eicher_stock_url='http://www.bseindia.com/stock-share-price/stockreach_financials.aspx?scripcode=505200&expandable=0'
get_url=requests.get(eicher_stock_url)
target_table=soup(get_url.text,'lxml')
extracted_table_data=target_table.find('table',id='acr')
datasets=[]
col_names=[]
count=1
with open(file_path,'r+') as file:
writer=csv.writer(file)
col_names.append('Years')
for years_row in extracted_table_data.find('tr').find_all('td',class_='TTHeader'):
if not(years_row.get_text()=='(in Cr.)'):
print(years_row.get_text())
col_names.append(years_row.get_text())
writer.writerow(col_names)
with open(file_path,'r+') as file:
writer=csv.writer(file)
for row_headings in extracted_table_data.find('tr').find('td',class_='TTRow_left'):
col_names.append(row_headings)
for row_values in extracted_table_data.find('tr').find_all('td',class_='TTRow_right',text=lambda x:'6,188.03' in x or '3,031.22' in x or '1,702.47' in x or '1,049.26' in x or '670.95' in x):
col_names.append(row_values.get_text())
writer.writerow(col_names)
und mein Ergebnis ist wie folgt :
Years,2016,2014,2013,2012,2011,Revenue,"6,188.03","3,031.22","1,702.47","1,049.26",670.95
Meine Anforderungen sind:
statt ((in Cr.)) Spaltenname i ändern müssen, dass als ‚Jahr‘
ich es erkunden müssen und wollen die Daten als CSV-Datei erhalten (schreiben in csv unterstützt Datei), und ich möchte auch transponieren (T) die Zeilen und Spalten
ich brauche eine zusätzliche Spalten von einer anderen hTML-Seite (erfordern einige Beispiele)
Bitte freundlich mir helfen hinzuzufügen. ICH kann nicht weiter gehen. Danke im Voraus.
Wirklich hat es mir sehr geholfen. Können Sie bitte die Schritte erklären, die Sie bisher gemacht haben? Und eine kleine Änderung, die Sie ändern müssen, ist, dass wir nicht direkt 'Pop' innerhalb von Zip-Dateien verwenden können. Stattdessen müssen wir sie in eine Liste konvertieren, dann können wir sie konvertieren. – DineshkumarVellingiri
ausgezeichnete Arbeit. Und ich will auch Jahre in der ersten Spalte hinzufügen und ich möchte auch eine weitere Spalte hinzufügen, die von einer anderen Seite extrahiert werden muss (Gib mir ein Beispiel mit meinem gegebenen Link selbst). Es wäre nett, wenn du diese Schritte erklärst so viel wie du kannst. – DineshkumarVellingiri
Die Logik ist einfach: alle Tabellen auf der Webseite in "main" holen, Tabellen mit '-' finden, die n-te Tabelle mit '-' finden, die die benötigten Daten in main_split haben, diese in main_zip transponieren und konvertieren zum Datenrahmen. Das Hinzufügen von Jahren kann durch eine ähnliche Verschrottung erfolgen - indem Sie diesen Code ein wenig modifizieren. Zusammenführen kann über Pandas Dataframe Merge durchgeführt werden. Es ist interessant, dass ich in eine schöne Suppe kam, weil ich ein ähnliches Projekt mit NSE ein paar Tage zurück begann :-) – Oxymoron88