person_data = {'first name':'Ivan', 'second name':'Ivanov', 'year of birth': 1995}current_year = 2017
print('{} {} is {} years old'.format(
person_data['first name'], person_data['second name'], current_year - person_data['year of birth']))class Person:
def __init__(self, data):
self._first_name = data['first name']
self._second_name = data['second name']
self._age = current_year - data['year of birth']
def print_info(self):
print('{} {} is {} years old'.format(
self._first_name, self._second_name, self._age))
person = Person(person_data)
person.print_info()
import requests
from parse import *
from bs4 import BeautifulSoup
import lxml.html
url = "https://www.dohod.ru/ik/analytics/dividend/nlmk"
source = requests.get(url) # задаем переменную для открытия адреса
main_text = source.text # забираем весь текст из урла
soup = BeautifulSoup(main_text) # "разобранная" страница кода через модуль BeautifulSoup
table = soup.find ("table", { "class" : "content-table" }) # ищем table с классом content-table в "разобранной" soup странице
with open('test.html', 'w') as output_file: # сохраняем инфу в файл
output_file.write(str(table))
f = open('test.html', 'r') # открываем сохраненный файл
f_str = f.read() # читаем сохраненный файл
root = lxml.html.fromstring(f_str)
header = [x.text for x in root.xpath('.//tr/th')]
for item in root.xpath('.//tr'):
td = [x.text for x in item.xpath('.//td')]
if td:
print(dict(zip(header, td)))
f.close(){'Год': 'след 12m. (прогноз)', 'Дивиденд (руб.)': '20.68', 'Изм. к пред. году': '+7.8%'}
{'Год': '2019', 'Дивиденд (руб.)': '19.18', 'Изм. к пред. году': '-1.44%'}
{'Год': '2018', 'Дивиденд (руб.)': '19.46', 'Изм. к пред. году': '+54.94%'}
{'Год': '2017', 'Дивиденд (руб.)': '12.56', 'Изм. к пред. году': '+90.59%'}
{'Год': '2016', 'Дивиденд (руб.)': '6.59', 'Изм. к пред. году': '+59.56%'}
{'Год': '2015', 'Дивиденд (руб.)': '4.13', 'Изм. к пред. году': '+166.45%'}
{'Год': '2014', 'Дивиденд (руб.)': '1.55', 'Изм. к пред. году': '+150%'}
{'Год': '2013', 'Дивиденд (руб.)': '0.62', 'Изм. к пред. году': '+3.33%'}
{'Год': '2012', 'Дивиденд (руб.)': '0.6', 'Изм. к пред. году': '-76.92%'}
{'Год': '2011', 'Дивиденд (руб.)': '2.6', 'Изм. к пред. году': '+209.52%'}
{'Год': '2010', 'Дивиденд (руб.)': '0.84', 'Изм. к пред. году': 'n/a'}
{'Год': '2009', 'Дивиденд (руб.)': '0', 'Изм. к пред. году': '-100%'}
{'Год': '2008', 'Дивиденд (руб.)': '3.5', 'Изм. к пред. году': '+16.67%'}
{'Год': '2007', 'Дивиденд (руб.)': '3', 'Изм. к пред. году': '-14.29%'}
{'Год': '2006', 'Дивиденд (руб.)': '3.5', 'Изм. к пред. году': '+94.44%'}
{'Год': '2005', 'Дивиденд (руб.)': '1.8', 'Изм. к пред. году': '+12.18%'}
{'Год': '2004', 'Дивиденд (руб.)': '1.6', 'Изм. к пред. году': '-99.49%'}
{'Год': '2003', 'Дивиденд (руб.)': '312.5', 'Изм. к пред. году': 'n/a'}
<table class="content-table">
<tr>
<th>Год</th>
<th>Дивиденд (руб.)</th>
<th>Изм. к пред. году</th>
</tr>
<tr class="forecast">
<td class="black">след 12m. (прогноз)</td>
<td class="black11">20.68</td> <td class="color-positive">+7.8%</td> </tr>
<tr>
<td>2019</td>
<td>19.18</td> <td class="color-negative">-1.44%</td> </tr>
<tr>
<td>2018</td>
<td>19.46</td> <td class="color-positive">+54.94%</td> </tr>
<tr>
<td>2017</td>
<td>12.56</td> <td class="color-positive">+90.59%</td> </tr>
<tr>
<td>2016</td>
<td>6.59</td> <td class="color-positive">+59.56%</td> </tr>
<tr>
<td>2015</td>
<td>4.13</td> <td class="color-positive">+166.45%</td> </tr>
<tr>
<td>2014</td>
<td>1.55</td> <td class="color-positive">+150%</td> </tr>
<tr>
<td>2013</td>
<td>0.62</td> <td class="color-positive">+3.33%</td> </tr>
<tr>
<td>2012</td>
<td>0.6</td> <td class="color-negative">-76.92%</td> </tr>
<tr>
<td>2011</td>
<td>2.6</td> <td class="color-positive">+209.52%</td> </tr>
<tr>
<td>2010</td>
<td>0.84</td> <td>n/a</td> </tr>
<tr>
<td>2009</td>
<td>0</td> <td class="color-negative">-100%</td> </tr>
<tr>
<td>2008</td>
<td>3.5</td> <td class="color-positive">+16.67%</td> </tr>
<tr>
<td>2007</td>
<td>3</td> <td class="color-negative">-14.29%</td> </tr>
<tr>
<td>2006</td>
<td>3.5</td> <td class="color-positive">+94.44%</td> </tr>
<tr>
<td>2005</td>
<td>1.8</td> <td class="color-positive">+12.18%</td> </tr>
<tr>
<td>2004</td>
<td>1.6</td> <td class="color-negative">-99.49%</td> </tr>
<tr>
<td>2003</td>
<td>312.5</td> <td>n/a</td> </tr>
</table>
print(dict(zip(header, td)))data = dict(zip(header, td))
print(data)
print("nlmk = {" + data["Год"] + ", " + data["Дивиденд (руб.)"] + ", " + data["Изм. к пред. году"] + "}")
data = {'Год': 'след 12m. (прогноз)', 'Дивиденд (руб.)': '20.68', 'Изм. к пред. году': '+7.8%'}
print("nlmk = {" + data["Год"] + ", " + data["Дивиденд (руб.)"] + ", " + data["Изм. к пред. году"] + "}")
#печатает
#nlmk = {след 12m. (прогноз), 20.68, +7.8%}
nlmk = {след 12m. (прогноз), 20.68, +7.8%}
nmlk = data