Список через l oop не создается - PullRequest
0 голосов
/ 19 января 2020

Я пытаюсь создать список URL-адресов с помощью al oop, а затем получить точку данных из каждого URL-адреса, но кажется, что это происходит только для последнего элемента (MMM) списка, а не для всех из них. ... Что я делаю неправильно? Спасибо!

from simplified_scrapy.request import req
from simplified_scrapy.simplified_doc import SimplifiedDoc

tickers = ['AAPL','T','MMM']

for i in tickers:
    quote_page = ['https://ycharts.com/companies/'+i+'/dividend_yield']

data = []
for pg in quote_page:
  page = req.get(pg)
  doc = SimplifiedDoc(page)
  divyield = doc.select('.box boxRatio').getElementByText('Average').next.text
  data.append((divyield)[:-1])
print (data)

1 Ответ

1 голос
/ 19 января 2020

Когда вы выполняете

for i in tickers:
    quote_page = ['https://ycharts.com/companies/'+i+'/dividend_yield']

, вы создаете цикл, и на каждой итерации цикла вы присваиваете новое значение (массив из 1 элемента) для quote_page вместо добавления нового значения к массиву quote_page.

Вы можете сделать:

quote_page = []
for i in tickers:
    quote_page.append('https://ycharts.com/companies/'+i+'/dividend_yield')

или использовать более короткий вариант, как было предложено @DarrylG в комментариях:

quote_page = ['https://ycharts.com/companies/'+i+'/dividend_yield' for i in tickers]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...