Автор Тема: [Данные, строки] Как сохранить все ссылки соответствующие шаблону в текстовый файл  (Прочитано 1141 раз)

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

Оффлайн Dimmer [?]

  • Новичок
  • *
  • Сообщений: 3
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Имеется сохраненная страничка source.htm в которой нужно найти такие ссылки href="https://test.ru/profile/520762328821" (изменяются только цифры, их 12шт постоянно) и записать их в столбик в текстовый файл в таком виде:
https://test.ru/profile/985125624452
https://test.ru/profile/520762328821
https://test.ru/profile/111555455214
https://test.ru/profile/955655652555
https://test.ru/profile/888888888555
...

Всего ссылок в файле от 500 до 5000, FileReadLine читает посторочно, но в строке ссылок которые подходят может быть много
Ломаю голову как сделать но не получается, подскажите как правильно сделать

Код: AutoIt [Выделить]
$source = FileOpen("I:\source .htm") ; файл-источник
$dest = FileOpen("I:\ok.txt", 2) ; файл-получатель
$template = StringRegExp($source, '(href="https://test.ru/profile/)([0-9]{12})(")', 2)

While 1
  $str = FileReadLine($source)
  If @error = -1 Then ExitLoop
  If StringInStr($str, $template) Then
    $array = StringRegExp( $str, $template, 2)
    FileWriteLine($dest, $array & @CRLF)
  EndIf
WEnd

FileClose($source)
FileClose($dest)


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


Помечен как лучший ответ пользователем Dimmer Отправлен Сентябрь 12, 2016, 14:11:29

Alofa

  • Гость
Код: AutoIt [Выделить]
#include <Array.au3>
$sSource = FileRead(@ScriptDir & '\source.htm') ; ... файл-источник
$sFileOk = @ScriptDir & '\ok.txt' ; ................. файл-получатель
$asTemplate = _ArrayUnique(StringRegExp($sSource, 'href\s*=\s*"?(https?://test.ru/profile/\d{12})\D', 3), 0, 0, 0, 0)
If @error Then Exit

$hDest = FileOpen($sFileOk, 2)
If $hDest = -1 Then Exit

For $sElement In $asTemplate
    FileWriteLine($hDest, $sElement & @CRLF)
Next
FileClose($hDest)

« Последнее редактирование: Сентябрь 12, 2016, 21:38:17 от Alofa »

Оффлайн Dimmer [?]

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

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
(нажмите для показа/скрытия)

Спасибо, получилось гениально и просто, все работает :ok:

Подскажите пожалуйста еще как поправить код чтобы в файл записывались только уникальные ссылки без повторов

сейчас так:
(нажмите для показа/скрытия)

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


Alofa

  • Гость
... чтобы в файл записывались только уникальные ссылки без повторов...
Подправил скрипт.

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


 

Похожие темы

  Тема / Автор Ответов Последний ответ
21 Ответов
18784 Просмотров
Последний ответ Апрель 01, 2011, 17:01:28
от Redline
2 Ответов
2539 Просмотров
Последний ответ Апрель 22, 2011, 18:21:02
от CreatoR
3 Ответов
5661 Просмотров
Последний ответ Февраль 14, 2012, 07:33:53
от madmasles
3 Ответов
2680 Просмотров
Последний ответ Май 12, 2012, 16:04:55
от StarEdik
9 Ответов
3981 Просмотров
Последний ответ Февраль 19, 2013, 12:43:25
от BIOS
2 Ответов
2249 Просмотров
Последний ответ Июнь 01, 2015, 11:28:10
от ---Zak---
5 Ответов
1932 Просмотров
Последний ответ Июль 21, 2015, 09:26:16
от op_joke
0 Ответов
851 Просмотров
Последний ответ Январь 29, 2017, 12:01:35
от ason
6 Ответов
1215 Просмотров
Последний ответ Сентябрь 03, 2017, 18:08:34
от Alexey_A
0 Ответов
507 Просмотров
Последний ответ Сентябрь 20, 2017, 18:35:31
от XXXSAPSANXXX