Создайте скрипт на Python, который будет считывать файл csv и использовать этот ввод для веб-очистки данных из finviz.com затем экспортируйте данные в csv-файл

#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. Я знаю, что мне не хватает цикла. Просто не знаю, как это написать.