<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>
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'}
html_text = """
<table class="content-table">
...
</table>
"""
<table class="content-table">
<tr>
<th>Год</th>
<th>Дивиденд (руб.)</th>
<th>Изм. к пред. году</th>
</tr>
<tr class="forecast">
<td class="black">след 12m. (прогноз)</td>
<td class="black11">83.71</td> <td class="color-positive">+53.2%</td> </tr>
<tr>
<td>2019</td>
<td>54.64</td> <td class="color-positive">+28.78%</td> </tr>
<tr>
<td>2018</td>
<td>42.43</td> <td class="color-negative">-16.13%</td> </tr>
<tr>
<td>2017</td>
<td>50.59</td> <td class="color-positive">+361.59%</td> </tr>
<tr>
<td>2016</td>
<td>10.96</td> <td class="color-positive">+3.59%</td> </tr>
<tr>
<td>2015</td>
<td>10.58</td> <td class="color-positive">+28.55%</td> </tr>
<tr>
<td>2014</td>
<td>8.23</td> <td class="color-negative">-4.3%</td> </tr>
<tr>
<td>2013</td>
<td>8.6</td> <td class="color-positive">+21.47%</td> </tr>
<tr>
<td>2012</td>
<td>7.08</td> <td class="color-positive">+41.04%</td> </tr>
<tr>
<td>2011</td>
<td>5.02</td> <td class="color-negative">-23.48%</td> </tr>
<tr>
<td>2010</td>
<td>6.56</td> <td class="color-positive">+48.42%</td> </tr>
<tr>
<td>2009</td>
<td>4.42</td> <td class="color-negative">-21.77%</td> </tr>
<tr>
<td>2008</td>
<td>5.65</td> <td class="color-positive">+22.83%</td> </tr>
<tr>
<td>2007</td>
<td>4.6</td> <td class="color-positive">+360%</td> </tr>
<tr>
<td>2006</td>
<td>1</td> <td>n/a</td> </tr>
<tr>
<td>2005</td>
<td>0</td> <td class="color-negative">-100%</td> </tr>
<tr>
<td>2004</td>
<td>2</td> <td>n/a</td> </tr>
</table>
$ pip uninstall pycurl
ERROR: Cannot uninstall 'pycurl'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
C:\Users\Ave\AppData\Local\Temp\test.py>pip install pyTelegramBotAPI
Requirement already satisfied: pyTelegramBotAPI in c:\users\ave\appdata\local\programs\python\python37-32\lib\site-packages (3.6.6)
Requirement already satisfied: requests in c:\users\ave\appdata\local\programs\python\python37-32\lib\site-packages (from pyTelegramBotAPI) (2.7.0)
Requirement already satisfied: six in c:\users\ave\appdata\local\programs\python\python37-32\lib\site-packages (from pyTelegramBotAPI) (1.12.0)
import telebot
bot = telebot.TeleBot("829699753:AAFuwcs1-dnUzJNwh-Ns-ReRJVK32Tbaueo")
@bot.message_handler(content_types=['text'])
def send_echo(message):
bot.reply_to(message, message.text)
bot.polling( none_stop = True )
C:\anaconda\envs\test.py\python.exe C:/python/WeatherBot.py
Traceback (most recent call last):
File "C:/python/WeatherBot.py", line 1, in <module>
import telebot
File "C:\python\telebot.py", line 3, in <module>
bot = telebot.TeleBot("829699753:AAFuwcs1-dnUzJNwh-Ns-ReRJVK32Tbaueo")
AttributeError: module 'telebot' has no attribute 'TeleBot'
Но я всё равно не понимаю как сделать вывод вида "переменная" = {data}