Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.55/40: Рейтинг темы: голосов - 40, средняя оценка - 4.55
4 / 4 / 2
Регистрация: 07.05.2014
Сообщений: 489

Вытянуть текст с html-страницы

13.12.2015, 22:30. Показов 8253. Ответов 48
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вопрос такой: я считал с html-страницы при помощи BeautifulSoup определенные теги с текстом и записал их в текстовый файл. Между этими тегами есть текст который мне нужен. Как это можно сделать до записи в текстовый файл, чтобы текст записался сразу без тегов. Вот код
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
# -*- coding: utf-8 -*
 
import urllib2
from bs4 import BeautifulSoup
 
 
def parse(a):
    html_doc = open('C:\Users\R\Desktop\1.txt').read()
    soup = BeautifulSoup(html_doc)
    
    tag_1 = soup.find_all('div',class_='item')
    tag_3 = soup.find_all('div',class_='label')
    tag_2 = soup.find_all('p')
    
    a=len(tag_1)
    b=len(tag_2)
    c=len(tag_3)
    d=a+b+c
    
    with open(u'словарь.txt', 'w') as f:
        for i in range(0,c):
            f.write(str(tag_3[i]) + '\n')
        for i in range(0,b):
            f.write(str(tag_2[i]) + '\n')   
        for i in range(0,a):    
            f.write(str(tag_1[i]) + '\n')
        
        
def main():
    parse(5)
 
if __name__ == '__main__':
    main()
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.12.2015, 22:30
Ответы с готовыми решениями:

Считать текст из html-страницы
Нужна помощь, есть html-страница в ней есть текст, его нужно считать. Как это можно сделать или где почитать?

Как вытащить текст из html страницы?
Писал бота, столкнулся с проблемой, не понимаю, как вытащить sitekey из html страницы, вот сам html: <iframe...

PHP нужно из страницы вытянуть текст
<a href="link.php"><b>Trulala</b></a> ***** <a href="link1.php"><b>Trulala1</b></a> ***** <a href="link2.php"><b>Trulala2</b></a> ...

48
1080 / 1007 / 107
Регистрация: 28.02.2010
Сообщений: 2,889
14.12.2015, 15:51
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Рустик12 Посмотреть сообщение
lst это список?
Да. Список div-элементов вроде.
0
4 / 4 / 2
Регистрация: 07.05.2014
Сообщений: 489
14.12.2015, 16:03  [ТС]
где каждый элемент списка это строка с тегом и текстом?

Добавлено через 42 секунды
Jabbson, ваш код работает, но почему то только для первой строчки.
0
4 / 4 / 2
Регистрация: 07.05.2014
Сообщений: 489
14.12.2015, 21:55  [ТС]
Евгений М., я вот вообще не понимаю почему ваша и программа Jabbson, не хочет работать, вроде работает только первую строчку выводит а дальше ошибка
Миниатюры
Вытянуть текст с html-страницы  
0
4 / 4 / 2
Регистрация: 07.05.2014
Сообщений: 489
15.12.2015, 01:40  [ТС]
Вот этот код работает, но записывает последний элемент.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
import lxml.html
import sys
 
reload(sys)
sys.setdefaultencoding('utf-8')
 
page = lxml.html.parse('out208269.txt')
lst = page.xpath('//div[@class = "item"]/div[@class = "title"]')
 
for element in lst:
    #print element.text + ', date: ' + element[0].text
    with open(u'dictionary.txt', 'w') as f:
        f.write(element.text + '\n')
Добавлено через 41 минуту
Все понял в чем ошибка. я каждый раз открывал файл и перезаписывал его.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
import lxml.html
import sys
 
reload(sys)
sys.setdefaultencoding('utf-8')
 
page = lxml.html.parse('out208269.txt')
lst = page.xpath('//div[@class = "item"]/div[@class = "title"]')
c=len(lst)
with open(u'dictionary.txt', 'w') as f:
    for element in lst:
    #print element.text + ', date: ' + element[0].text
        f.write(element.text+ ', date: ' + element[0].text + '\n')
Добавлено через 2 часа 36 минут
HTML5
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
<p class="subtitle">Это крупнейшая утечка информации об офшорах в истории. Среди тех, чьи данные окажутся в Сети, высокопоставленные российские чиновники и топ-менеджеры госкомпаний</p>
                                    <div class="label">
            <img src="http://cdn.forbes.ru/cdn/farfuture/CLyCLm81VNdi6rhhead57MUIPUygggEqQW3BfTYCSq4/mtime:1366288382/sites/default/files/imagecache/api_320_215/main/story/000_WAS2003070903474_main.jpg" />
            </div>
                        <p><a href="http://www.icij.org/offshore/secret-files-expose-offshores-global-impact" target="_blank">Международный консорциум расследовательской журналистики</a>&nbsp;(ICIJ) планирует выложить в интернет информацию о более чем 100 000 владельцев&nbsp;банковских счетов в офшорных зонах. Материал обещает стать крупнейшей утечкой об офшорах, когда-либо появлявшейся в свободном доступе. Совокупный объем информации более чем в 160 раз превышает объем документов Госдепартамента США, опубликованных Wikileaks в 2010 году.</p>
 
<p>В исследовании участвовали более 80 журналистов, в том числе из&nbsp;The Guardian,&nbsp;BBC,&nbsp;Le Monde,&nbsp;S&uuml;ddeutsche Zeitung, Washington Post,&nbsp;CBC и др. В течение 15 месяцев они изучали более 2,5 млн документов, содержащих информацию о владельцах офшорных счетов. Как отмечается на странице организации в Facebook, список будет выложен в свободный доступ &laquo;в ближайшее время&raquo;.</p>
 
<p>Уже известны имена нескольких владельцев счетов. Среди них <a href="http://www.forbes.ru/sobytiya-package/vlast/80594-dengi-i-ofshory-igorya-shuvalova" target="_blank">супруга первого вице-премьера России Игоря Шувалова Ольга</a> и два топ-менеджера &laquo;Газпрома&raquo; (их имена не уточняются). По данным ICIJ, им принадлежат счета на&nbsp;Британских Виргинских островах (BVI). &laquo;Все трое отказались от комментариев&raquo;,&nbsp;&mdash; отмечается в докладе. &laquo;Жена заместителя премьер-министра, а также топ-менеджеры крупнейших военных подрядчиков и госкомпаний оказались среди большого числа россиян, в тайне владеющих офшорными инвестициями. Утечка выставляет настойчивый призыв президента Владимира Путина к деофшоризации в новом свете&raquo;,&nbsp;&mdash; отмечается на сайте. О том, что семья Игоря Шувалова регистрировала компанию Severin Enterprises в юрисдикции BVI, Forbes сообщал в материале&nbsp;<a href="http://www.forbes.ru/sobytiya/vlast/80789-igor-shuvalov-trast-kotoryi-lopnul" target="_blank">&laquo;Игорь Шувалов: траст, который лопнул&raquo;</a>. По сведениям ICIJ, эта организация стала учредителем еще нескольких юрлиц. Проверка Генпрокуратуры никаких нарушений антикоррупционных норм в деловой деятельности супруги чиновника не выявила. Сама Ольга Шувалова от комментариев воздержалась.</p>
 
<p>Как уточняет газета&nbsp;<a href="http://www.vedomosti.ru/politics/news/10786721/dannye_o_vladelcah_ofshorov_obescenivayut_prizyvy_putina" target="_blank">&laquo;Ведомости&raquo;</a>, другими российскими фигурантами&nbsp;&laquo;слива&raquo; ICIJ стали зампред правления &laquo;Газпрома&raquo; Валерий Голубев, гендиректор&nbsp;&laquo;Газпром социнвест&raquo; Борис Пайкин, бывший глава&nbsp;&laquo;Оборонпрома&raquo; Андрей Реус и брат сенатора Михаила Маргелова Владимир Маргелов.</p>
 
<p>В частности, Голубев владел 50% фирмы Sander International Inc., зарегистрированной на&nbsp;Британских Виргинских островах и ликвидированной в 2008 году. Топ-менеджер заверил издание, что отношения к&nbsp;работе&nbsp;&laquo;Газпрома&raquo; эта организация не&nbsp;имела. При этом ее совладельцем некоторое время также являлся Пайкин. Он возглавляет строительную&nbsp;&laquo;дочку&raquo; газовой монополии.</p>
 
<p>Реус, в прошлом &mdash; замминистра промышленности и энергетики РФ, числится среди акционеров корпорации Dreemlover Ltd, Маргелов в 2005 и 2008 годах&nbsp;был акционером и&nbsp;директором Winkind Technology Development и Innovation Tech Group соответственно.</p>
 
<p><strong>См. также:&nbsp;<a href="http://www.forbes.ru/node/234223" target="_blank">Интерактивная карта офшорных территорий и их связей с Россией</a></strong></p>
 
<p>Всего в списке, оказавшемся в распоряжении журналистов, &mdash;&nbsp;120 000 офшорных компаний и трастов.&nbsp;Офшорные счета имеют высокопоставленные чиновники и их родственники в Канаде, Азербайджане, Таиланде, Монголии, Пакистане, на Филиппинах и многих других странах. Большинство, как и Шувалова, предпочитает BVI, утверждает организация.</p>
 
<p>В частности, по данным ICIJ, на островах банковскими услугами пользовался мультимиллионер Скот Янг, близкий друг Бориса Березовского. Бизнесмен оказался в тюрьме по итогам инициированного бывшей женой судебного разбирательства, он был признан виновным в сокрытии доходов, напоминает The Guardian.</p>
 
<p>Другой известный фигурант расследования&nbsp;&mdash; помощник президента Франции Франсуа Олланда Жан-Жак Огье, активно участвовавший в финансировании избирательной кампании лидера социалистов. Его компания, зарегистрованная на Кайманах, занималась поставками товаров в Китай и имела парнера с долей в 25% из BVI. По словам Огье, его партнером был китайский бизнесмен.</p>
 
<p>Бывший министр финансов Монголии&nbsp;Сангажавын&nbsp;Баярцогт зарегистрировал на BVI фирму Legend Plus Capital Ltd с банковским счетом в Швейцарии. Эта организация функционировала в период работы Баярцогта в правительстве &mdash;&nbsp;с 2008-го по 2012 год. В беседе с журналистами экс-министр признал, что фирма оперировала деньгами его друзей из бизнес-сообщества, назвал сам факт участия в ее уставе&nbsp;&laquo;ошибкой&raquo; и не исключил, что ему следовало подать в отставку с поста главы Минфина.</p>
 
<p>Азербайджанский бизнесмен Хассан Гозал, по версии ICIJ, управлял на BVI фирмами, созданными в интересах президента страны Ильхама Алиева и двух дочерей главы государства.</p>
 
<p>Супруг сенатора из Канады Тони Мерчант держал на депозите на BVI более $800 000. В офшорной зоне он зарегистрировал траст, который совершал подозрительные транзакции средств.</p>
 
<p>Журналисты также выяснили, что самая известная арт-коллекционер Испании баронесса Кармен Тиссен-Борнемица, в прошлом победительница конкурсов красоты и вдова металлургического магната, использует зарегистрированные на BVI фирмы для покупки предметов искусства с целью скрыть истинное имя нового владельца того или иного лота.</p>
 
<p>Также услугами офшорной юрисдикции пользовалась бывшая жена нефтяного трейдера Марка Рича Дениз Рич. Она внесла $144 млн в траст, зарегистрированный на островах Кука. Марк Рич в свое время подозревался в уклонении от уплаты налогов.</p>
 
<p><a href="http://www.forbes.ru/sites/default/files/ofshore-25-02-2.swf" id="badminton" target="_blank"><a href='/sites/default/files/users/user48196/m_o_v_gl.jpg' target='_blank'><img src ='/sites/default/files/users/user48196/m_o_v_gl.jpg' /></a></a></p>
Вот есть еще такой формат новостей, и я при помощи
Python
1
page.xpath('//div[@class = "item"]/div[@class = "title"]/p[class="subtitle"]')
сделал, но в итоге получил пустой список
0
4 / 4 / 2
Регистрация: 07.05.2014
Сообщений: 489
16.12.2015, 22:14  [ТС]
Jabbson, можете ппосоветовать, как мне из этой строчки вытащить id и записать его в конец строчки, какой командой можно воспользоваться?
HTML5
1
<div class="item" onclick="document.location = 'news.php?id=305331';"><div class="title">Медведев рассказал о неизбежном повышении пенсионного возраста<div class="time uppercase">06:56*11.11</div></div></div>
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
16.12.2015, 22:25
Python
1
2
import re
print(re.search('id=(\d+)', txt).group(1))
0
4 / 4 / 2
Регистрация: 07.05.2014
Сообщений: 489
16.12.2015, 22:39  [ТС]
Вот ваш код где считывает html страницу ищет определенные теги и записывает их в файл, проблема в том, что я не знаю как добавить стразу id в конец файл.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# -*- coding: utf-8 -*
import lxml.html
import sys
 
 
reload(sys)
sys.setdefaultencoding('utf-8')
 
page = lxml.html.parse('out208269.txt')
lst = page.xpath('//div[@class = "item"]/div[@class = "title"]')
lst_1 = page.xpath('//p/text()')
 
 
 
with open(u'dictionary.txt', 'w') as f:
    for element in lst:
    #print element.text + ', date: ' + element[0].text
        f.write(element.text+ ', date: ' + element[0].text + '\n')
    for element1 in lst_1:
        f.write(element1)
Добавлено через 4 минуты
Можно ли как то при помощи xpath вытащить этот id?
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
16.12.2015, 23:11
Лучший ответ Сообщение было отмечено Rodmistar как решение

Решение

в input.txt:
Code
1
2
<div class="item" onclick="document.location = 'news.php?id=305331';"><div class="title">Медведев рассказал о неизбежном повышении пенсионного возраста<div class="time uppercase">06:56 11.11</div></div></div>
<div class="item" onclick="document.location = 'news.php?id=305332';"><div class="title">Медведев2 рассказал о неизбежном повышении пенсионного возраста<div class="time uppercase">06:56 11.11</div></div></div>
Python
1
2
3
4
5
6
7
8
# -*- coding: utf-8 -*-
 
import lxml.html
 
p = lxml.html.parse('input.txt')
t = [x.get('onclick').split('=')[2].split('\'')[0] for x in p.xpath('//div[@onclick]')]
 
print(t)
Вывод:
Code
1
['305331', '305332']
1
4 / 4 / 2
Регистрация: 07.05.2014
Сообщений: 489
16.12.2015, 23:34  [ТС]
Jabbson, спасибо за помощь)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.12.2015, 23:34

Вытянуть исходный текст веб страницы в мемо
memo1.Lines.Text:= IdHttp1.Get('http://www.google.ru/'); выбивает ошибку кто может подсказать по какой причине?

Получить текст с html страницы
Возможно ли, в Builder 6 c++, получить весь текст со странички html, которую программа сама открывает, а пользователь при этом получает...

Парсим текст с HTML страницы
И так ребятки, котятки. Нужно спарсить текст с html страницы, и вывести данный текст в Listbox Пример страницы:...

Выделить текст из HTML страницы
Помогите, пожалуйста! Как выделить текст из HTML страницы (без использования стандартной функции удаления тегов)???

Как перевести текст HTML страницы?
Приложение выполняет парсинг HTML страницы. HTML страница имеет текст, картинки, таблицы и дургое содержание. Язык текста на странице...


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

Или воспользуйтесь поиском по форуму:
49
Ответ Создать тему
Новые блоги и статьи
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru