Автор Тема: Скопировать текст из страницы сайта в файл.txt  (Прочитано 5290 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Ivanov [?]

  • Новичок
  • *
  • Сообщений: 13
  • Репутация: 0
  • Пол: Мужской
  • Незнайка на autoit
    • Награды
  • Версия AutoIt: 3.3.14.0
Необходимо скопировать текст новости, а у меня что-то не выходит. Посдкажите, пожалуйста, что я делаю не так? Или не по тому пути пошел. Есть ли другой вариант решения?
Код: AutoIt [Выделить]
#include <IE.au3>
#include <file.au3>
$IE = _IECreate("http://stomaster.livejournal.com/3280399.html")
_IELoadWait($IE)
$elements = _IETagNameGetCollection($IE, "div")
$index = 1
For $elem In $elements
    if StringInStr($elem.attributes.getNamedItem('class' ).nodeValue, 'entry-content') Then
        if $index>3 Then
        $a = _IETagNameGetCollection($elem, "div")
        For $elem1 In $a
            MsgBox(0,$index,$elem1.innertext)

            Next
            EndIf
$index += 1
        EndIf
    Next
$elements = _IETagNameGetCollection($IE, "div")
$I = 0
For $elem In $elements
    if $I = 1 Then
        MsgBox(0,$I,$elem.innertext)
        _FileWriteLog(@ScriptDir & "\text.txt", $elem.innertext)
    EndIf
   
$I +=1
Next

« Последнее редактирование: Апрель 13, 2014, 01:26:27 от Ivanov »

Русское сообщество AutoIt

Скопировать текст из страницы сайта в файл.txt
« Отправлен: Апрель 13, 2014, 00:32:52 »

Оффлайн erlik [?]

  • Продвинутый
  • ***
  • Сообщений: 317
  • Репутация: 83
    • Награды
  • Версия AutoIt: 3.3.8.1
Другой вариант  :)
Код: AutoIt [Выделить]
$sUrl= 'http://stomaster.livejournal.com/3280399.html'
$oIE = ObjCreate("InternetExplorer.Application")               ; _IECreate($sUrl)
$oIE.visible = 1                                               ; делаем окно видимым
$oIE.navigate($sUrl)                                           ; переходим по ссылке
While $oIE.Busy                                                ;_IELoadWait($oIE)     ; ждем окончания загрузки
    Sleep(200)
Wend
$sText = $oIE.document.getElementsByClassName('entry-content').item(0).InnerText
ConsoleWrite('$sText:' & $sText)


Оффлайн Ivanov [?]

  • Новичок
  • *
  • Сообщений: 13

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
  • Незнайка на autoit
    • Награды
  • Версия AutoIt: 3.3.14.0
erlik Спасибо! Страница загружается, но текст не копируется в файл.



Добавлено: Апрель 13, 2014, 08:09:54
Чтобы скопировать заголовок страницы, написал вот так:

Код: AutoIt [Выделить]
#include <IE.au3>  ; добовляется библиотека для работы с браузером
#include <file.au3> ; добавляется библиотека для работы с файлами
$IE = _IECreate('http://stomaster.livejournal.com/3280399.html', 0, 0) ; создание объекта браузера и присвоение переменной $IE
_IELoadWait($IE) ; ожидание загрузки
sleep(3000) ; ждать 3 сек на случай асинхронного построения
$elements = _IETagNameGetCollection($IE, "dt")
$index = 1
For $elem In $elements
    if StringInStr($elem.attributes.getNamedItem('class' ).nodeValue, 'entry-title') Then
        if $index>3 Then
        $a = _IETagNameGetCollection($elem, "/title")
        For $elem1 In $a
            MsgBox(0,$index,$elem1.innertext)

            Next
            EndIf
$index += 1
        EndIf
    Next
$elements = _IETagNameGetCollection($IE, "dt")
$I = 0
For $elem In $elements
    if $I = 1 Then
        MsgBox(0,$I,$elem.innertext)
        _FileWriteLog(@ScriptDir & "\title.txt", $elem.innertext)
    EndIf
$I +=1
Next
 


Текст копируется в файл. Единственно, что мне ненравится, что добавляет перед загловком время копирования: 2014-04-13 01:48:38 : В Таллине тоже прохошел митинг. А как скопировать текст самой новости?
« Последнее редактирование: Апрель 13, 2014, 08:11:14 от Ivanov »

Русское сообщество AutoIt

Re: Скопировать текст из страницы сайта в файл.txt
« Ответ #2 Отправлен: Апрель 13, 2014, 08:05:07 »

Оффлайн alex33 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1440
  • Репутация: 179
  • Пол: Мужской
    • alekssamos ВКонтакте
    • Награды
  • Версия AutoIt: 3.3.12.0
Цитата: Ivanov
текст не копируется в файл.
Потому что в коде он копируется в консоль, а не в файл...
Добавь функцию
Код: AutoIt [Выделить]
_FileWriteLog(@ScriptDir & "\text.txt", $sText)

Вот мой вариант:
Код: AutoIt [Выделить]
#include <IE.au3>
#include <file.au3>
$sUrl= 'http://stomaster.livejournal.com/3280399.html'
$oIE = _IECreate($sUrl, 0, 1, 0)
_IELoadWaitTimeout(5000)
_IELoadWait($oIE)

;~     $sText = $oIE.document.getElementsByClassName('entry-content').item(0).InnerText

$sText = ""
$elems = _IETagNameGetCollection($oIE, "div")
If IsObj($elems) Then
For $elem In $elems
If StringInStr($elem.className, "entry-content") Then
$sText = $elem.innerTEXT
ExitLoop
EndIf
Next
EndIf
MsgBox(0, "text", $sText)
_FileWriteLog(@ScriptDir & "\text.txt", $sText)
 


Оффлайн Ivanov [?]

  • Новичок
  • *
  • Сообщений: 13

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
  • Незнайка на autoit
    • Награды
  • Версия AutoIt: 3.3.14.0
alex33 а тогда подскажите, пожалуста, чтобы затем текст бросить в форму другого сайта это проще сделать из консоли или из текстового файла?
 

Русское сообщество AutoIt

Re: Скопировать текст из страницы сайта в файл.txt
« Ответ #4 Отправлен: Апрель 13, 2014, 11:23:54 »

Оффлайн alex33 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1440
  • Репутация: 179
  • Пол: Мужской
    • alekssamos ВКонтакте
    • Награды
  • Версия AutoIt: 3.3.12.0
Ivanov, если текст нужно сохранить, а потом через какое-то время прочитать то записывай в файл.
А так этот текст после получения находится в переменной $sText и с ним можно делать всё что угодно.
Занести в форму другого сайта можно например через функцию
Код: AutoIt [Выделить]

Оффлайн Garrett [?]

  • Глобальный модератор
  • *
  • Сообщений: 3999
  • Репутация: 963
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Ivanov  [?]
Цитировать
Необходимо скопировать текст новости
[?]
Цитировать
но текст не копируется в файл
[?]
Цитировать
текст бросить в форму другого сайта

Код: AutoIt [Выделить]
#include<IE.au3>

$iID = 3280399

$oIE = _IECreate('http://stomaster.livejournal.com/'& $iID &'.html')
$oDIV = _IEGetObjById($oIE, 'post-stomaster-' & $iID)
$oDIV.childNodes.item(2).removeChild($oDIV.childNodes.item(2).firstChild)
;~ Сохраняем текст новости.
$sData = StringStripWS(_IEPropertyGet($oDIV, 'innerText'), 3)

FileWrite($iID & '.txt', $sData)

;~ _IENavigate($oIE, 'адрес сайта в форму которого надо вставить текст')
;~ Далее получаем объект "форма"
;~ и делаем с ним всё что захотим.

_IEQuit($oIE)


Скорблю и помню.




Русское сообщество AutoIt

Re: Скопировать текст из страницы сайта в файл.txt
« Ответ #6 Отправлен: Апрель 13, 2014, 12:33:18 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
5 Ответов
7899 Просмотров
Последний ответ Июль 03, 2010, 18:14:21
от selahssea
21 Ответов
17702 Просмотров
Последний ответ Ноябрь 21, 2010, 18:18:05
от assch
5 Ответов
4343 Просмотров
Последний ответ Декабрь 28, 2012, 20:58:04
от AZJIO
0 Ответов
2476 Просмотров
Последний ответ Март 16, 2013, 19:33:42
от serher
6 Ответов
3526 Просмотров
Последний ответ Август 23, 2013, 19:37:29
от alex33
1 Ответов
1852 Просмотров
Последний ответ Январь 28, 2014, 19:03:57
от blacklis
0 Ответов
989 Просмотров
Последний ответ Май 26, 2015, 10:42:01
от Evochka Turkova
4 Ответов
1701 Просмотров
Последний ответ Июль 29, 2016, 13:01:41
от TiranCool
0 Ответов
469 Просмотров
Последний ответ Февраль 17, 2019, 19:20:20
от alex-evpa
4 Ответов
306 Просмотров
Последний ответ Май 06, 2019, 03:14:57
от dwm18