Прочитать html файл - Python

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток! Нужно найти в html файле и записать в txt текст между тегами span
Листинг программы
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. out = open('out.txt','w')
  4. for i in range(1, 30):
  5. name_file = str(i) + '.html'
  6. f = open(name_file, 'r', encoding= 'utf8')
  7. for line in f:
  8. line_file = f.readline()
  9. star = line_file.find('<span>') + 6
  10. end = line_file.find('</span>')
  11. temp = line_file[star:end:1]
  12. out.writelines(temp)
  13. line_file = ''
  14. star = ''
  15. end = ''
  16. name_file = ''
  17. f.close()
  18. line_file = ''
  19. star =''
  20. end = ''
  21. out.close()
Выдает такую ошибку
Листинг программы
  1. Traceback (most recent call last):
  2. File "C:/Users/NOUT/Desktop/teams/147.py", line 7, in <module>
  3. for line in f:
  4. File "C:\Users\NOUT\Miniconda3\lib\codecs.py", line 321, in decode
  5. (result, consumed) = self._buffer_decode(data, self.errors, final)
  6. UnicodeDecodeError: 'utf-8' codec can't decode byte 0x9e in position 2591: invalid start byte

Решение задачи: «Прочитать html файл»

textual
Листинг программы
  1. import asyncio
  2. import aiohttp
  3. from lxml import html
  4.  
  5.  
  6. @asyncio.coroutine
  7. def fetch_page(url):
  8.     response = yield from aiohttp.request('GET', url)
  9.     content = yield from response.read()
  10.     page = html.fromstring(content)
  11.     result.extend([x.text for x in page.cssselect('table#teamsboard tr td.hidden-xs span') if x.text])
  12.  
  13. result = []
  14. loop = asyncio.get_event_loop()
  15. tasks = [fetch_page('http://2016.ufoctf.ru/teams/{}'.format(x)) for x in range(1,31)]
  16. loop.run_until_complete(asyncio.wait(tasks))
  17. loop.close()
  18.  
  19. print(set(result))

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.385 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут