#python #csv
#python #csv
Вопрос:
Я пытаюсь извлечь список акций из csv-файла, загрузить каждый биржевой тикер в finviz.com и экспортируйте данные в csv-файл. Я новичок в программировании на Python, но я знаю, что это поможет мне и другим. Это то, что у меня пока есть.
import csv
import urllib.request
from bs4 import BeautifulSoup
with open('shortlist.csv', 'r') as csvfile:
reader = csv.reader(csvfile, delimiter=',')
name = None
for row in reader:
if row[0]:
name = row[0]
print(name)
write_header = True
sauce = print(name)
soup = BeautifulSoup(sauce.text, 'html.parser')
print(soup.title.text)
symbols = name
""""
print(symbols)
"""
URL_BASE = "https://finviz.com/quote.ashx?t="
with open('output.csv', 'w', newline='') as file:
writer = csv.writer(file)
for ticker in symbols:
URL = URL_BASE ticker
try:
fpage = urllib.request.urlopen(URL)
fsoup = BeautifulSoup(fpage, 'html.parser')
if write_header:
# note the change
writer.writerow(['ticker'] list(map(lambda e: e.text, fsoup.find_all('td', {'class': 'snapshot-td2-cp'}))))
write_header = False
# note the change
writer.writerow([ticker] list(map(lambda e: e.text, fsoup.find_all('td', {'class': 'snapshot-td2'}))))
except urllib.request.HTTPError:
print("{} - not found".format(URL))
Мне не хватает выходных данных в csv-файле «output.csv». Я вижу только данные из моего входного csv-файла «shortlist». Привязка или ссылка связаны неправильно.Я потратил пару недель на изучение / работу над тем, как это сделать. Мы высоко ценим вашу помощь.
Комментарии:
1. Это ошибка, которую я получаю на выходе: Traceback (последний вызов last): File «C:/Users/PycharmProjects/test1 «, строка 15, в <module> soup = BeautifulSoup(sauce.text, ‘html.parser’) Ошибка атрибута: объект ‘NoneType’ не имеет атрибута ‘text’ Symbol PDD SNCR VSTM EYES OTIV
Ответ №1:
import csv
import urllib.request
from bs4 import BeautifulSoup
with open('shortlist.csv', 'r') as csvfile:
reader = csv.reader(csvfile, delimiter=',')
name = None
for row in reader:
if row[0]:
name = row[0]
print(name)
write_header = True
#sauce = print(name)
#soup = BeautifulSoup(sauce.text, 'html.parser')
#print(soup.title.text)
symbols = name
""""
print(symbols)
"""
URL_BASE = "https://finviz.com/quote.ashx?t="
with open('output.csv', 'w', newline='') as file:
writer = csv.writer(file)
for ticker in symbols:
URL = URL_BASE ticker
try:
fpage = urllib.request.urlopen(URL)
fsoup = BeautifulSoup(fpage, 'html.parser')
if write_header:
# note the change
writer.writerow(['ticker'] list(map(lambda e: e.text, fsoup.find_all('td', {'class': 'snapshot-td2-cp'}))))
write_header = False
# note the change
writer.writerow([ticker] list(map(lambda e: e.text, fsoup.find_all('td', {'class': 'snapshot-td2'}))))
except urllib.request.HTTPError:
Вот результат:
введите описание изображения здесь
Комментарии:
1. Я знаю, что мне не хватает цикла. Просто не знаю, как это написать.