Форум программистов, компьютерный форум, киберфорум
Python: Web
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/34: Рейтинг темы: голосов - 34, средняя оценка - 4.76
1 / 1 / 1
Регистрация: 16.05.2013
Сообщений: 240

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

26.03.2016, 21:39. Показов 6798. Ответов 5
Метки нет (Все метки)

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

Нужно прочитать html файл
Мне необходимо скачать html - файл и прочитать.Не можете скинуть уроки,а лучши примеры,как это делать. Заранее спасибо.

Выбрать файл на html странице и прочитать его
Нужно на странице html выбрать файл с диска и получить с него данные. В html делаю &lt;form action=import...

HTML -прочитать, изменить, записать в новый файл
Имеется файл HTM, объема примерно 1,5 Мб (автоматический отчет - только текст и таблицы), нужно информацию из него раскидать по отдельным...

5
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
27.03.2016, 02:13
gordan11, гораздо проще будет использую например lxml.html распарсить текст и изменить нужный кусок
0
1 / 1 / 1
Регистрация: 16.05.2013
Сообщений: 240
27.03.2016, 11:14  [ТС]
Цитата Сообщение от alex925 Посмотреть сообщение
gordan11, гораздо проще будет использую например lxml.html распарсить текст и изменить нужный кусок
Мне изменять не нужно. У меня есть 29 страниц html, между <span> </span> написаны города, вот их мне нужно и вытащить.
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
27.03.2016, 11:29
Можете приложить пример такого html файла?
0
1 / 1 / 1
Регистрация: 16.05.2013
Сообщений: 240
27.03.2016, 11:40  [ТС]
Цитата Сообщение от Jabbson Посмотреть сообщение
Можете приложить пример такого html файла?
Расширение на html поменяйте
Вложения
Тип файла: zip 2.zip (18.7 Кб, 9 просмотров)
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
27.03.2016, 20:33
Как насчет:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# -*- coding: utf-8 -*-
import requests
from lxml import html
from queue import Queue
from threading import Thread
 
# print('*** Getting a cookie')
# url = 'http://2016.ufoctf.ru/'
# r = requests.head(url)
# cookies = {'session': 'None'} #r.cookies['session']}
 
# number of pages to parse
print('*** Getting number of pages:', end=' ')
url = 'http://2016.ufoctf.ru/teams'
r = requests.get(url) #, cookies=cookies)
page = html.fromstring(r.content)
max_page = int(page.cssselect('div.text-center a')[-3].text)
print(max_page)
 
# final list of cities
cities = list()
 
# queue with urls
enclosure_queue = Queue()
for i in range(1, max_page+1):
    enclosure_queue.put('http://2016.ufoctf.ru/teams/{}'.format(i))
 
 
# function to collect cities from a page
def collect_cities(q):
    while True:
        url = q.get()
        r = requests.get(url) #, cookies=cookies)
        page = html.fromstring(r.content)
        cities.extend([x.text for x in page.cssselect('table#teamsboard tr td.hidden-xs span') if x.text])
        q.task_done()
 
# creating workers
for i in range(15):
    worker = Thread(target=collect_cities, args=(enclosure_queue,))
    worker.setDaemon(True)
    worker.start()
 
print('*** Work in progress')
enclosure_queue.join()
print('\n*** Collected cities:\n', len(cities), cities)
print('\n*** Unique cities:\n', len(set(cities)), set(cities))
Code
1
2
3
4
5
6
7
8
9
*** Getting a cookie
*** Getting number of pages
*** Work in progress
 
*** Collected cities:
 158 ['Rostov-on-Don', 'Воронеж', 'Жуковский', 'Москва', 'Королёв', 'Саратов', 'Омск', 'Владивосток', 'Уфа', 'Москва', 'Хабаровск', 'Кисловодск', 'Таганрог', 'Красноярск', 'Москва', 'Борисоглебск', 'Innopolis', 'Таганрог', 'Подольск', 'Архангельск', 'Харьков, Украина', 'Нижний Новгород', 'Иркутск', 'Иркутск', 'Москва', 'Tomsk', 'Екатеринбург', 'Мытищи', 'Санкт-Петербург', 'Санкт-Петербург', 'Таганрог', 'Владивосток', 'Зеленогорск', 'Омск', 'Екатеринбург', 'Москва', 'Киев', 'Владивосток', 'Екатеринбург', 'Самара', 'Москва', 'Москва', 'Оренбург', 'Салават', 'Белгород', 'Ростов-на-Дону', 'Витебск', 'Санкт-Петербург', 'Ижевск', 'Омск', 'Пермь', 'Пермь', 'Москва', 'Боготол', 'https://docs.google.com/document', 'Барнаул', 'барнаул', 'Хабаровск', 'Барнаул', 'Барнаул', 'барнаул', 'Барнаул', 'Барнаул', 'Барнаул', 'Грозный', 'Истра', 'Ижевск', 'Барнаул', 'Владивосток', 'Владивосток', 'Учалы', 'Барнаул', 'Москва', 'Надым', 'Жуковский', 'Орел', 'Пермь', 'Таганрог', 'Новосибирск', 'Москва', 'Санкт-петербург', 'Екатеринбург', 'Нижний Новгород', 'Пермь', 'Владивосток ', 'Барнаул', 'Новосибирск', 'Енакиево', 'Усть-Кут', 'Ухта', 'Мытищи', 'Санкт-Петербург', 'Таганрог', 'Таганрог', 'Таганрог', 'Саратов', 'Новосибирск', 'Таганрог', 'Краснодар', 'Мытищи', 'Новосибирск', 'Москва', 'Мытищи', 'Нижний Новгород', 'Курчатов', 'Томск', 'Таганрог', 'Владивосток', 'Санкт-Петербург', 'Москва', 'Москва', 'Москва', 'Харьков', 'Мураши', 'Омск', 'Омск', 'Хабаровск', 'Махачкала', 'Владивосток', 'Сочи', 'Сочи', 'Москва', 'Москва', 'С. Писаревка', 'Томск', 'Сергиев Посад', 'Казань', 'Вильнюс', 'Москва', 'Москва', 'Москва', 'Воронеж', 'УФа', 'Таганрог', 'Уфа', 'Екатеринбург', 'Екатеринбург', 'Москва', 'Владивосток', 'Красноярск', 'Барнаул', 'Ижевск', 'Красноярск', 'Томск', 'СПБ', 'Иркутск', 'Москва', 'Астрахань', 'Пермь', 'Москва', 'Самара', 'Самара', 'Екатеринбург', 'Москва', 'Владивосток', 'Владивосток', 'Томск', 'Боготол']
 
*** Unique cities:
 63 {'Усть-Кут', 'Грозный', 'Таганрог', 'Витебск', 'Киев', 'Самара', 'Барнаул', 'Воронеж', 'Саратов', 'Tomsk', 'СПБ', 'Подольск', 'Новосибирск', 'Махачкала', 'Кисловодск', 'Королёв', 'Красноярск', 'Санкт-петербург', 'Владивосток ', 'Пермь', 'Вильнюс', 'барнаул', 'Енакиево', 'Краснодар', 'Астрахань', 'Rostov-on-Don', 'Ухта', 'Учалы', 'Архангельск', 'Москва', 'Оренбург', 'Екатеринбург', 'Харьков', 'Владивосток', 'Борисоглебск', 'Орел', 'Боготол', 'Казань', 'Уфа', 'УФа', 'Белгород', 'Харьков, Украина', 'Ростов-на-Дону', 'С. Писаревка', 'Омск', 'Innopolis', 'Курчатов', 'Надым', 'Санкт-Петербург', 'Томск', 'Мураши', 'Салават', 'Сочи', 'Нижний Новгород', 'Зеленогорск', 'Мытищи', 'Хабаровск', 'https://docs.google.com/document', 'Иркутск', 'Истра', 'Сергиев Посад', 'Жуковский', 'Ижевск'}
Добавлено через 3 часа 43 минуты
как вариант

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import asyncio
import aiohttp
from lxml import html
 
 
@asyncio.coroutine
def fetch_page(url):
    response = yield from aiohttp.request('GET', url)
    content = yield from response.read()
    page = html.fromstring(content)
    result.extend([x.text for x in page.cssselect('table#teamsboard tr td.hidden-xs span') if x.text])
 
result = []
loop = asyncio.get_event_loop()
tasks = [fetch_page('http://2016.ufoctf.ru/teams/{}'.format(x)) for x in range(1,31)]
loop.run_until_complete(asyncio.wait(tasks))
loop.close()
 
print(set(result))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.03.2016, 20:33
Помогаю со студенческими работами здесь

Как прочитать xml файл из внешнего источника и на основе полученных данных сформировать HTML таблицы?
Дана задача, нужно по API получить листы с сервера, найти среди них с подтверждением(DoubleOptIn) и без(SingleOptIn). Вывести их отдельно...

Прочитать файл в обратном порядке т.е. встать в конец файла и прочитать до начальной позиции
подскажите пожалуйста как можно прочитать файл в обратном порядке т.е. стать в конец файла и прочитать до начальной позиции?

Создать файл F из элементов массива M, переписать в файл G все компоненты которые меньше 5, прочитать файл G
создать файл F,компонентами которого являются элементы массива M,переписать в файл G все компоненты которые меньше 5,прочитать файл G

Создать текстовый файл из 5 строк, прочитать созданный файл и получить новый файл согласно заданию.
Создать текстовый файл из 5 строк, прочитать созданный файл и получить новый файл согласно заданию. Переписать все латинские буквы...

Создать текстовый файл из 5 строк, прочитать созданный файл и получить новый файл
Создать текстовый файл из 5 строк, прочитать созданный файл и получить новый файл. Переписать в новый файл все строки, заменив все...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru