У меня есть программа с файлом конфигурации в моей программе, в которую вы можете добавить символы акций компании, затем она берет те символы акций, которые находятся в этом файле конфигурации, и ищет новостные статьи, которые представляют собой всю информацию, получаемую из API. Одной из категорий, которые я печатаю, является поле URL, поэтому распечатываемый URL - это URL, который перенаправляет вас на другой URL (реальный URL). Теперь я пытаюсь получить URL-адрес, который я перенаправляю на печать
У меня есть глобальный список компаний, в который я добавляю все URL-адреса, к которым я обращаюсь, чтобы все общие URL-адреса перенаправления были там. Я получаю перенаправленный URL, единственная проблема в том, что я получаю только 1 перенаправленный URL, и он, в свою очередь, печатает этот URL для каждой новостной статьи, которую я печатаю. Это немного сложно объяснить, поэтому, если вам нужны дополнительные разъяснения, просто спросите.
Вот мой код, и я прокомментировал то, что пытался.
Для тестирования здесь есть 2 стандартных символа, которые вы можете добавить в файл конфигурации. Если вы хотите что-то протестировать: aapl и yelp, просто поместите их в отдельные строки в файле конфигурации.
import sys
import json
import urllib.request
import time
import datetime
import requests
def main():
openconfigfile()
searchfornews()
def openconfigfile():
mylist = []
with open('config.txt') as myfile:
for company in myfile:
mylist.append(company.strip())
return mylist
companyurl = []
def searchfornews():
myurl = []
global companyurl
url = 'https://api.iextrading.com/1.0/stock/'
companies = openconfigfile()
for company in companies:
stockinput = company + '/news/last/2'
createdurl = url + stockinput
myurl.append(createdurl)
while True:
try:
for url in myurl:
fob = urllib.request.urlopen(url)
data = fob.read().decode('utf-8')
companydata = json.loads(data)
for company in companydata:
company['datetime'] = reformatdate()
companyurl.append(company['url'])
# r = getredirectedlink()
# company['url'] = r.url
print('''======== [%s] ========
%s: "%s"
%s
tags: %s''' % (company['datetime'], company['source'], company['headline'], company['url'], company['related']))
time.sleep(30)
except Exception as e:
print()
print('''ERROR: news not found for 1 or more stock symbols
You have a stock symbol in the config file that doesnt match any known stock symbol''', e)
time.sleep(30)
def reformatdate():
time = datetime.datetime.today()
newtime = time.strftime('%B %d %Y, %I:%M %p')
return newtime
# def getredirectedlink():
# global companyurl
# for x in companyurl:
# r = requests.get(x)
# return r
if __name__ == '__main__':
sys.exit(main())