У меня есть код ниже, который очищает веб-данные с помощью BeautifulSoup.Я использую два разных цикла for для захвата двух разных наборов данных: name
и value
from bs4 import BeautifulSoup
import requests
import csv
source = requests.get('https://finance.yahoo.com/quote/' + ticker + '/key-statistics?p=' + ticker).text
soup = BeautifulSoup(source, 'lxml')
csv_file = open('yahoo_key_stats_grab.csv', 'w')
csv_writer = csv.writer(csv_file)
csv_writer.writerow(['name', 'value'])
def yahoo_key_stats_grab(ticker):
for stat in soup.find_all('span')[12:21]:
name = stat.text
print(name)
csv_writer.writerow([name])
for stat in soup.find_all('td', class_='Fz(s) Fw(500) Ta(end)'):
if len(str(stat.text)) > 6:
break
else:
print(stat.text)
csv_file.close()
Если я запускаю код yahoo_key_stats_grab('MIC')
, я получаю следующий вывод: что именноЯ хочу.
Market Cap (intraday)
Enterprise Value
Trailing P/E
Forward P/E
PEG Ratio (5 yr expected)
Price/Sales
Price/Book
Enterprise Value/Revenue
Enterprise Value/EBITDA
3.23B
6.8B
6.95
16.04
1.64
1.73
1.04
3.65
10.80
Однако я хотел бы сохранить очищенные данные в CSV-файле с двумя столбцами name
и value
.Я могу получить столбец имени, но не могу понять, как добавить второй столбец value
в файл CSV.
name value
Market Cap (intraday)
Enterprise Value
Trailing P/E
Forward P/E
PEG Ratio (5 yr expected)
Price/Sales
Price/Book
Enterprise Value/Revenue
Enterprise Value/EBITDA
Кто-нибудь может дать мне несколько советов?Заранее спасибо.