Ответить Создать тему

Парсинг хтмл файлов на autoit , как это осуществить

romaaa32
post Jun 20 2015, 18:29 
Отправлено #1


Новичок

Сообщений: 3



В html файле имеется вот такой вот тег
Исходный код
<ul class="block">

   <li><a href="/site/relation/details?id=96565">A</a><sup>40</sup></li>

   <li><a href="/site/relation/details?id=108387">B</a><sup>50</sup></li>

</ul>

Нужно достать ид каждого. Как это осуществить? Провозился пол дня, результатов нет. Заранее спасибо!
в данном коде это ид 96565 и 108387
Profile CardPM
  0/0  
foo-bar
post Jun 21 2015, 12:11 
Отправлено #2


Активный

Сообщений: 1 370



Используйте регулярные выражения, остальное детали зависящие от того какими инструментами пользуетесь.
Profile CardPM
  0/0  
XCruel
post Jun 21 2015, 12:48 
Отправлено #3


Активный

Сообщений: 1 543



Можно хоть в excel, разбиением на столбцы)
Profile CardPM
  0/0  
romaaa32
post Jun 21 2015, 15:46 
Отправлено #4


Новичок

Сообщений: 3



Исходный код
$vTest1 = '<ul class="block">

  <li><a href="/site/relation/details?id=96565">A</a><sup>40</sup></li>

  <li><a href="/site/relation/details?id=108387">B</a><sup>50</sup></li>

</ul>'



$sRet1 = StringRegExpReplace($vTest1, '(?i).*id=(.*?)\">.*', '\1')

$sRet1 = StringRegExpReplace($vTest1, '(?i).*id=(.*?)\">.*', '\1')

Немного решил, но как сделать что бы с файла брал? открыть хтмл не выходит
Profile CardPM
  0/0  
romaaa32
post Jun 21 2015, 15:47 
Отправлено #5


Новичок

Сообщений: 3



2 раза написал, вместо последнего
Исходный код
MsgBox(0, "Bytes read", $sRet1)
Profile CardPM
  0/0  
foo-bar
post Jun 21 2015, 16:04 
Отправлено #6


Активный

Сообщений: 1 370



Цитата(XCruel @ Jun 21 2015, 12:48)
Можно хоть в excel, разбиением на столбцы)
*
Если отформатировано так что строго по одному элементу списка в строке, то можно и разбиением на столбцы.
Profile CardPM
  0/0  
foo-bar
post Jun 21 2015, 16:06 
Отправлено #7


Активный

Сообщений: 1 370



Накидал на perl'е:
Исходный код
foreach my $line (<STDIN>) {
   my @ids = $line =~ m|/site/relation/details\?id=(\d+)|g;
   print((join "\n", @ids), "\n") if @ids;
}


Сообщение отредактировал foo-bar - Jun 21 2015, 16:06
Profile CardPM
  0/0  
foo-bar
post Jun 21 2015, 16:12 
Отправлено #8


Активный

Сообщений: 1 370



Цитата(romaaa32 @ Jun 21 2015, 15:46)
как сделать что бы с файла брал? открыть хтмл не выходит
*
Читайте как в AutoIt работать с текстовыми файлами, никаких проблем здесь быть не должно.
Profile CardPM
  0/0  
Snowm@n
post Jun 22 2015, 02:24 
Отправлено #9


O_o

Сообщений: 1 037



На bash делается в одну строку
Исходный код
cat 1.html | grep -o '/site/relation/details?id=[0-9]*' | cut -d '=' -f 2


--------------------
Developer -> Lead Developer -> Lead Architect -> ... ?
Profile CardPM
  0/0  

ОтветитьTopic Options
1 чел. читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
Быстрый ответ
Кнопки кодов
 Расширенный режим
 Нормальный режим
    Закрыть все тэги


Открытых тэгов: 
Введите сообщение
Смайлики
smilie  smilie  smilie  smilie  smilie 
smilie  smilie  smilie  smilie  smilie 
smilie  smilie  smilie  smilie  smilie 
smilie  smilie  smilie  smilie  smilie 
smilie  smilie  smilie  smilie  smilie 
smilie  smilie  smilie  smilie  smilie 
         
Показать все

Опции сообщения