Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Сбор информации с сайта и ее обработка.

Ответить
Настройки темы
[решено] Сбор информации с сайта и ее обработка.

Аватара для Medic84

$AutoITer


Автор проектов


Сообщения: 446
Благодарности: 44

Профиль | Отправить PM | Цитировать


Собственно хочу добавить в программу сбор информации о ЛЮБОМ фильме с портала Кинопоиск, да еще и так что бы работало все время правильно. Вот список для сбора.
Код: Выделить весь код
 <tr><td>
         <h1 style="margin: 0; padding: 0" class="moviename-big">Бросок кобры </h1>
      </td></tr>
      <tr><td>
         <table style="width: 100%; border: none" cellspacing=0 cellpadding=0>
         <tr>
         <td style="width: 100%">
            <span style="color: #666; font-size: 13px">G.I. Joe: The Rise of Cobra</span>
         </td>
Код: Выделить весь код
<tr><td class="type">год</td><td class=""><a href="/level/10/m_act%5Byear%5D/2009/">2009</a></td></tr>


   <tr><td class="type">страна</td><td class=""><a href="/level/10/m_act%5Bcountry%5D/3/">США</a></td></tr>


   <tr><td class="type">слоган</td><td>«Когда остальные сдаются, они идут до конца»</td></tr>
   <tr><td class="type">режиссер</td><td><a href="/level/4/people/23076/">Стивен Соммерс</a></td></tr>
Код: Выделить весь код
 <tr><td class="type">жанр</td><td><a href="/level/10/m_act%5Bgenre%5D/2/">фантастика</a>, <a href="/level/10/m_act%5Bgenre%5D/3/">боевик</a>, <a href="/level/10/m_act%5Bgenre%5D/4/">триллер</a>, <a href="/level/10/m_act%5Bgenre%5D/10/">приключения</a></td></tr>

   <tr><td class="type">бюджет</td><td class="dollar"><a href="/level/85/film/397496/">$175 000 000</a></td></tr>
Код: Выделить весь код
<tr><td class="type">сборы в мире</td><td class="dollar"><a href="/level/85/film/397496/">+ $91 500 000 = $190 077 529</a></td></tr>
Код: Выделить весь код
<tr><td class="type">премьера (мир)</td><td class="calendar"><a href="/level/80/film/397496/">5 августа 2009</a></td></tr>

   <tr><td class="type">премьера (РФ)</td><td class="calendar"> <a class='all' href='/level/8/view/prem/year/2009/#397496'>6 августа 2009</a>, <a href='/level/10/m_act[company]/7/' class='all'>«Централ Партнершип»</a></td></tr>
Код: Выделить весь код
 <tr><td class="type">время</td><td>118 мин.</td></tr>
Код: Выделить весь код
<tr><td colspan=3 style="padding:10px;padding-left:20px;" class="news">
			<span class="_reachbanner_">Базирующееся в Египте высокотехнологичное международное военное подразделение, известное как G.I. Joe, противостоит зловещей корпорации, руководимой знаменитым оружейным бароном.</span>
		</td></tr>
Код: Выделить весь код
<div style="color: #f60; font-family: tahoma; font-size: 25px"><a href="/level/83/film/397496/" class="continue" style="background: url(/images/dot_or.gif) 0 93% repeat-x; font-weight: normal !important; text-decoration: none">7.047<span style="font:100 14px tahoma, verdana">  4163</span></a>
</div>
Код: Выделить весь код
<div style="color:#999;font:100 11px tahoma, verdana">IMDB: 6.10 (12 210)</div><div style="color:#999;font:100 11px tahoma, verdana">ожидание: <a href="/level/53/" style='color:#999;font:100 11px tahoma, verdana; text-decoration:underline;'>64%</a> (8 014)</div>
   </div>
Жирным и подчеркнутым отмечено то что нужно вырвать

Я набросал кое что. Но не думаю что у меня правильно получилось (Честно говоря мне с трудом даются SringRegExpReplase и др.)
Код: Выделить весь код
Func _Get()
$Sourse = _INetGetSource ($URL)
$sName = StringRegExpReplace($Sourse, '<h1 style=".*" class=".*">(.*)</h1>.*', '\1')
$sName = StringReplace($sName, ' ', ' ')
$sOriginal = StringRegExpReplace($Sourse,'<span style="color: #666; font-size: 13px">(.*)</span>', '\1')
$sGod = StringRegExpReplace($Sourse,'<tr><td class="type">год</td><td class=""><a href=".*">.(.*)</a></td></tr>', '\1')
$sStrana = StringRegExpReplace($Sourse,'<tr><td class="type">страна</td><td class=""><a href=".*">(.*)</a></td></tr>', '\1')
$sSlogan = StringRegExpReplace($Sourse,'<tr><td class="type">слоган</td><td>(.*)</td></tr>','\1')
$sSlogan = StringReplace($sName, '»', '"')
$sRejisser =StringRegExpReplace($Sourse,'<tr><td class="type">режиссер</td><td><a href=".*">(.*)</a></td></tr>','\1')
$sJanr = StringRegExp($Sourse,'<tr><td class="type">жанр</td><td><a href=".*">(.*)</a>.*',)
$sSbory = StringRegExpReplace($Sourse,,'\1')
$sMir =StringRegExpReplace($Sourse,,'\1')
$sRF = StringRegExpReplace($Sourse,,'\1')
$sTime = StringRegExpReplace($Sourse,,'\1')
$sKratk = StringRegExpReplace($Sourse,,'\1')
$sRait = StringRegExpReplace($Sourse,,'\1')
$sIdmb = StringRegExpReplace($Sourse,,'\1')
$sBudget = StringRegExpReplace($Sourse, '<tr><td class="type">бюджет</td><td class=".*"><a href=".*">(.*)</a>.*', '\1')
$sBudget = StringReplace($sBudget, ' ', ' ')
EndFunc
Запнулся(и упал + сломал думалку) на жанре т.к. их там несколько и не смог вырвать...

-------

AutoIT Русское сообщество| Моя лаборатория


Отправлено: 13:17, 18-08-2009

 

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Medic84,
Вот подправил:

Код: Выделить весь код
#include <IE.au3>

$sURL = "http://www.kinopoisk.ru/level/1/film/5090"

$sURL = InputBox("Kinopoisk.ru Informer", "Введите ссылку на фильм для получения информации:", $sURL, "", 350, 200)
If @error Then Exit

$oIE = _IECreate($sURL, 0, 0)
$sSource = _IEDocReadHTML($oIE)
_IEQuit($oIE)

$sName = _GetSourceProperty($sSource, '', '(?si).*?<h1 class=moviename-big.*?>(.*?)</h1>.*')
$sSlogan = _GetSourceProperty($sSource, 'слоган')
$sBudget = _GetSourceProperty($sSource, 'бюджет')
$sYear = _GetSourceProperty($sSource, 'год')
$sCountry = _GetSourceProperty($sSource, 'страна')
$sWorld_Primier = _GetSourceProperty($sSource, 'премьера (мир)')
$sRF_Primier = _GetSourceProperty($sSource, 'премьера (РФ)')
$sOriginal = _GetSourceProperty($sSource, '', '(?si).*?<span style="color:.*? font-size:.*?">(.*?)</span>.*')
$sDirector = _GetSourceProperty($sSource, 'режиссер')
$sWorld_Collect = _GetSourceProperty($sSource, 'сборы в мире')
$sTime = _GetSourceProperty($sSource, 'время')
$Kratk = _GetSourceProperty($sSource, '', '(?si).*?<span class=_reachbanner_.*?>(.*?)</span>.*')
$sJaners = _GetSourceProperty($sSource, 'жанр')

$sInfo = StringFormat( _
    "Имя:\t\t\t%s\n" & _
    "Слоган:\t\t\t%s\n" & _
    "Бюджет:\t\t\t%s\n" & _
    "Год:\t\t\t%s\n" & _
    "Страна:\t\t\t%s\n" & _
    "Режиссер:\t\t%s\n" & _
    "Премьера (Мир):\t\t%s\n" & _
    "Сборы в мире:\t\t%s\n" & _
    "Премьера (РФ):\t\t%s\n" & _
    "Время:\t\t\t%s\n" & _
    "Жанр:\t\t\t%s", _
    $sName, $sSlogan, $sBudget, $sYear, $sCountry, $sDirector, $sWorld_Primier, $sWorld_Collect, $sRF_Primier, $sTime, $sJaners)

MsgBox(64, 'Kinopoisk.ru Info', $sInfo)

;Функция для получения подстроки по заданному pattern
Func _GetSourceProperty($sSource, $sName, $sPattern = '')
    Local $s_Pattern = _
        '(?si).*?<TD class=type>%s</TD>.*?<TD(?: class=.*?|)>' & _
        '(?:<A(?: class=.*?|) href=".*?">|)(.*?)(?:</A>|)</TD></TR>.*'

    If $sPattern <> '' Then $s_Pattern = $sPattern
    $s_Pattern = StringFormat($s_Pattern, "\Q" & $sName & "\E")

    Local $sRet = StringRegExpReplace($sSource, $s_Pattern, '\1')
    If @extended = 0 Then Return SetError(1, 0, "N/A")

    $sRet = _ContentReplaceTags($sRet, 2)
    $sRet = StringRegExpReplace($sRet, '«+|»+', '"')

    Return $sRet
EndFunc

Func _ContentReplaceTags($sString, $iCorrect=-1)
    Local $aCorrects_Arr[8][2] = [[7], _
        ['&qu' & 'ot;', '"'], ['&a' & 'mp;', '&'], ['&' & '#39;', "'"], _
        ['&ap' & 'os;', "'"], ['&g' & 't;', '>'], ['&l' & 't;', '<'], ['&nb' & 'sp;', ' ']]

    Local $sReplStr = '\\n'
    If $iCorrect = 2 Then $sReplStr = @CRLF

    Local $sRet_Content = StringRegExpReplace($sString, '(?i)<(/|)br(/| /|)>|\n|\r|\r\n', $sReplStr)
    $sRet_Content = StringRegExpReplace($sRet_Content, '(?si)<(/|)[abiu]( .*?|)>|<hr(/| /|)>', '')

    For $i = 1 To $aCorrects_Arr[0][0]
        $sRet_Content = StringReplace($sRet_Content, $aCorrects_Arr[$i][0], $aCorrects_Arr[$i][1])
    Next

    If $iCorrect = 1 Then Return $sRet_Content

    Local $iCheckSpanPos = StringInStr($sRet_Content, '</s>')
    If $iCheckSpanPos > 0 Then $sRet_Content = StringTrimLeft($sRet_Content, $iCheckSpanPos)

    Return $sRet_Content
EndFunc
А что такое $sOriginal?

P.S
Кстати, кроме «& nbsp;» ещё могут встречаться и другие теги(?), у меня где то была функция для их полной замены...

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Последний раз редактировалось Creat0R, 19-08-2009 в 01:56. Причина: Подправил пример

Это сообщение посчитали полезным следующие участники:

Отправлено: 23:17, 18-08-2009 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата Creat0R:
у меня где то была функция для их полной замены »
Вот она:

Код: Выделить весь код
Func _ContentReplaceTags($sString, $iCorrect=-1)
    Local $aCorrects_Arr[8][2] = [[7], _
        ['&qu' & 'ot;', '"'], ['&a' & 'mp;', '&'], ['&' & '#39;', "'"], _
        ['&ap' & 'os;', "'"], ['&g' & 't;', '>'], ['&l' & 't;', '<'], ['&nb' & 'sp;', ' ']]

    Local $sReplStr = '\\n'
    If $iCorrect = 2 Then $sReplStr = @CRLF

    Local $sRet_Content = StringRegExpReplace($sString, '(?i)<(/|)br(/| /|)>|\n|\r|\r\n', $sReplStr)
    $sRet_Content = StringRegExpReplace($sRet_Content, '(?si)<(/|)[abiu]( .*?|)>|<hr(/| /|)>', '')

    For $i = 1 To $aCorrects_Arr[0][0]
        $sRet_Content = StringReplace($sRet_Content, $aCorrects_Arr[$i][0], $aCorrects_Arr[$i][1])
    Next

    If $iCorrect = 1 Then Return $sRet_Content

    Local $iCheckSpanPos = StringInStr($sRet_Content, '</s>')
    If $iCheckSpanPos > 0 Then $sRet_Content = StringTrimLeft($sRet_Content, $iCheckSpanPos)

    Return $sRet_Content
EndFunc
Подправил свой пример выше.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Последний раз редактировалось Creat0R, 19-08-2009 в 01:56.

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:44, 19-08-2009 | #12


Аватара для Medic84

$AutoITer


Автор проектов


Сообщения: 446
Благодарности: 44

Профиль | Отправить PM | Цитировать


Цитата Creat0R:
А что такое $sOriginal? »
Оригинальное название фильма. Как правило для английских фильмов

Имя фильма поправил на
Код: Выделить весь код
(?si).*?<h1 style=(?si).*?class=moviename-big.*?>(.*?)</h1>.*
Так как не определялось. Осталось самое сложное. И я отстану)))

1. Рейтинг фильма. IDMB я вставил сам, а вот с обычным рейтингом незадача.
Код: Выделить весь код
<div style="color: #f60; font-family: tahoma; font-size: 25px"><a href="/level/83/film/392930/" class="continue" style="background: url(/images/dot_or.gif) 0 93% repeat-x; font-weight: normal !important; text-decoration: none">7.952<span style="font:100 14px tahoma, verdana">  10591</span></a>
2. Добавление Актеров.
У меня есть Элемент List Хочу добавить актеров с помощью _GUICtrlListBox_AddString($roles_List, "Актер")
Код: Выделить весь код
<tr><td style="height: 31px; text-align: right; border: none; padding-right: 10px"><span style="color: #f60">В главных ролях:</span></td></tr>
   <tr><td style="height: 10px"><br /></td></tr>
   <tr><td style="height: 100%; vertical-align: top; padding-right:10px">
      <table style="width: 100%; border: none" cellspacing=0 cellpadding=0>
      <tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/6464/" class="all">Джон Легуизамо</a></td></tr>
<tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/25385/" class="all">Куин Латифа</a></td></tr>
<tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/4092/" class="all">Денис Лири</a></td></tr>
<tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/41961/" class="all">Саймон Пегг</a></td></tr>
<tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/15869/" class="all">Джош Пек</a></td></tr>
<tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/35310/" class="all">Рэй Романо</a></td></tr>
<tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/297/" class="all">Шонн Уильям Скотт</a></td></tr>
<tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/1235771/" class="all">Карен Дишер</a></td></tr>
<tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/39391/" class="all">Крис Уэдж</a></td></tr>
<tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/687150/" class="all">Юнис Чо</a></td></tr>
<tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/19/film/392930/" class="all">...</a></td></tr>
Вобщем нужно захватить всех актеров в массив после В главных ролях: и до троеточия (т.к. там еще актеры есть)

-------

AutoIT Русское сообщество| Моя лаборатория


Последний раз редактировалось Medic84, 19-08-2009 в 09:49.


Отправлено: 09:23, 19-08-2009 | #13


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата Medic84:
Имя фильма поправил на »
Цитата Medic84:
Так как не определялось »
А у меня наоборот с твоим методом не определяется . Попробуй так:

Код: Выделить весь код
(?si).*?<h1.*?class=moviename-big.*?>(.*?)</h1>.*
Цитата Medic84:
Осталось самое сложное »
Код: Выделить весь код
#include <IE.au3>

$sURL = "http://www.kinopoisk.ru/level/1/film/89515"

$sURL = InputBox("Kinopoisk.ru Informer", "Введите ссылку на фильм для получения информации:", $sURL, "", 350, 200)
If @error Then Exit

$oIE = _IECreate($sURL, 0, 0)
$sSource = _IEDocReadHTML($oIE)
_IEQuit($oIE)

$sName = _GetSourceProperty($sSource, '', '(?si).*?<h1.*?class=moviename-big.*?>(.*?)</h1>.*')
$sOrigin_Name = _GetSourceProperty($sSource, '', '(?si).*?<span style="color:.*? font-size:.*?">(.*?)</span>.*')
$sSlogan = _GetSourceProperty($sSource, 'слоган')
$sBudget = _GetSourceProperty($sSource, 'бюджет')
$sYear = _GetSourceProperty($sSource, 'год')
$sCountry = _GetSourceProperty($sSource, 'страна')
$sWorld_Primier = _GetSourceProperty($sSource, 'премьера (мир)')
$sRF_Primier = _GetSourceProperty($sSource, 'премьера (РФ)')
$sDirector = _GetSourceProperty($sSource, 'режиссер')
$sWorld_Collect = _GetSourceProperty($sSource, 'сборы в мире')
$sTime = _GetSourceProperty($sSource, 'время')
$sJaners = _GetSourceProperty($sSource, 'жанр')
$sRaiting = _GetSourceProperty($sSource, '', '(?si).*?<A class=continue style=".*?" href=".*?">(.*?)<SPAN.*?>.*?</SPAN></A>.*')
$sIMDB_Raiting = _GetSourceProperty($sSource, '', '(?si).*?<DIV style=".*?">IMDB: (.*?)</DIV>.*')
$sDescription = _GetSourceProperty($sSource, '', '(?si).*?<span class=_reachbanner_.*?>(.*?)</span>.*')
$sActors = _GetSourceProperty($sSource, '', '(?si).*?В главных ролях:.*?<A class=all href=".*?">(.*?)\.\.\.</A></TD></TR>.*')
$sActors = StringRegExpReplace($sActors, '(\n\r)+|\A\s+|\s+$', '')

$sInfo = StringFormat( _
    "Имя:\t\t\t%s\n" & _
    "Оригин. Имя:\t\t\t%s\n" & _
    "Слоган:\t\t\t%s\n" & _
    "Бюджет:\t\t\t%s\n" & _
    "Год:\t\t\t%s\n" & _
    "Страна:\t\t\t%s\n" & _
    "Режиссер:\t\t%s\n" & _
    "Премьера (Мир):\t\t%s\n" & _
    "Сборы в мире:\t\t%s\n" & _
    "Премьера (РФ):\t\t%s\n" & _
    "Время:\t\t\t%s\n" & _
    "Жанр:\t\t\t%s\n" & _
    "Рейтинг:\t\t\t%s\n" & _
    "Рейтинг IMDB:\t\t%s\n\n" & _
    "[В главных ролях]:\n%s\n\n" & _
    "[Описание]:\n%s\n\n", _
    $sName, $sOrigin_Name, $sSlogan, $sBudget, $sYear, $sCountry, $sDirector, $sWorld_Primier, _
    $sWorld_Collect, $sRF_Primier, $sTime, $sJaners, $sRaiting, $sIMDB_Raiting, $sActors, $sDescription)

MsgBox(64, 'Kinopoisk.ru Info', $sInfo)

;Функция для получения подстроки по заданному pattern
Func _GetSourceProperty($sSource, $sName, $sPattern = '', $iGetArr=0)
    Local $s_Pattern = _
        '(?si).*?<TD class=type>%s</TD>.*?<TD(?: class=.*?|)>' & _
        '(?:<A(?: class=.*?|) href=".*?">|)(.*?)(?:</A>|)</TD></TR>.*'

    If $sPattern <> '' Then $s_Pattern = $sPattern
    If $sName <> '' Then $s_Pattern = StringFormat($s_Pattern, "\Q" & $sName & "\E")

    If $iGetArr = 0 Then
        Local $sRet = StringRegExpReplace($sSource, $s_Pattern, '\1')
        If @extended = 0 Then Return SetError(1, 0, "N/A")
    Else
        Return StringRegExp($sSource, $s_Pattern, 3)
    EndIf

    $sRet = _ContentReplaceTags($sRet, 2)
    $sRet = StringRegExpReplace($sRet, '«+|»+', '"')

    Return $sRet
EndFunc

Func _ContentReplaceTags($sString, $iCorrect=-1)
    Local $aTags_Arr[8][2] = [[7], _
        ['&qu' & 'ot;', '"'], ['&a' & 'mp;', '&'], ['&' & '#39;', "'"], _
        ['&ap' & 'os;', "'"], ['&g' & 't;', '>'], ['&l' & 't;', '<'], ['&nb' & 'sp;', ' ']]

    Local $sReplStr = '\\n'
    If $iCorrect = 2 Then $sReplStr = @CRLF

    Local $sRet_Content = StringRegExpReplace($sString, '(?i)<(/|)br(/| /|)>|\n|\r|\r\n', $sReplStr)
    $sRet_Content = StringRegExpReplace($sRet_Content, '(?si)<(/|).*?>|<hr(/| /|)>', '')
    ;$sRet_Content = StringRegExpReplace($sRet_Content, '(?si)<(/|)[abiu]( .*?|)>|<hr(/| /|)>', '')

    For $i = 1 To $aTags_Arr[0][0]
        $sRet_Content = StringReplace($sRet_Content, $aTags_Arr[$i][0], $aTags_Arr[$i][1])
    Next

    If $iCorrect = 1 Then Return $sRet_Content

    Local $iCheckSpanPos = StringInStr($sRet_Content, '</s>')
    If $iCheckSpanPos > 0 Then $sRet_Content = StringTrimLeft($sRet_Content, $iCheckSpanPos)

    Return $sRet_Content
EndFunc

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 16:12, 19-08-2009 | #14


Аватара для Medic84

$AutoITer


Автор проектов


Сообщения: 446
Благодарности: 44

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: rar Шаблон.rar
(16.3 Kb, 5 просмотров)

Код: Выделить весь код
;$sRet_Content = StringRegExpReplace($sRet_Content, '(?si)<(/|)[abiu]( .*?|)>|<hr(/| /|)>', '')
А что это за строчка? ее можно удалить?

И что то рейтинг не работает
И актеры это не массив
Выдает ошибку.

Вобще ерунда какая то. Программа вообще критическую ошибку выдает. И выдает отчет.... Посмотри пожалуйста если есть время. Там некоторые строчки с комментариями

-------

AutoIT Русское сообщество| Моя лаборатория


Последний раз редактировалось Medic84, 19-08-2009 в 18:25.


Отправлено: 16:34, 19-08-2009 | #15


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Вложения
Тип файла: zip Kinopoisk.ru_Info_Collector.zip
(17.7 Kb, 22 просмотров)

Цитата Medic84:
Вобще ерунда какая то »
И вправду. Так кодить нельзя Вот возвращаю тебе пофиксенный вариант, плюс пару поправок/улучшении.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Последний раз редактировалось Creat0R, 22-08-2009 в 05:33. Причина: Обновление прикреплённого файла


Отправлено: 00:18, 20-08-2009 | #16


Аватара для Habetdin


Автор проектов


Сообщения: 3649
Благодарности: 1498

Профиль | Сайт | Отправить PM | Цитировать


Цитата Creat0R:
Kinopoisk.ru_Info_Collector.zip »
С нынешней версткой kinopoisk'а не работает получение списка актеров
читать дальше »
Код: Выделить весь код
<!-- актеры фильма -->
<td class="actor_list">
   <span class="title">В главных ролях:</span>
   <span><a href="/level/4/people/20866/">Анджелина Джоли</a></span>
   <span><a href="/level/4/people/8453/">Лив Шрайбер</a></span>
   <span><a href="/level/4/people/33495/">Чиветел Эджиофор</a></span>
   <span><a href="/level/4/people/140922/">Даниэль Ольбрыхский</a></span>
   <span><a href="/level/4/people/2526/">Аугуст Диль</a></span>
   <span><a href="/level/4/people/65480/">Дэниэл Пирс</a></span>
   <span><a href="/level/4/people/157465/">Хант Блок</a></span>
   <span><a href="/level/4/people/12590/">Андре Брогер</a></span>
   <span><a href="/level/4/people/12641/">Олек Крупа</a></span>
   <span><a href="/level/4/people/44117/">Кэссиди Хинкль</a></span>
   <span><a href="/level/19/film/447284/">...</a></span>

   <span class="title">Роли дублировали:</span>
   <span><a href="/level/4/people/1646297/">Ольга Зубкова</a></span>
   <span><a href="/level/4/people/1079049/">Валерий Соловьев</a></span>
   <span><a href="/level/4/people/277374/">Станислав Концевич</a></span>

   <span class="title"><a href="/level/19/film/447284/">показать всех</a> »</span>
</td>
</tr>
<!-- /актеры фильма -->
Кстати, название фильма "правильнее собирается" вот так:
Код: Выделить весь код
	$sName = _GetSourceProperty($sSource, '', '(?si).*?<h1.*?class=moviename-big.*?>(.*?)</h1>.*')
	If $sName <> 'N/A' Then
		$sName = StringReplace($sName, ' (видео)', '')
		$sName = StringReplace($sName, ' (ТВ)', '')
		$sName = StringTrimRight($sName, 1)
	EndIf
...
	$sJanrs = _GetSourceProperty($sSource, 'жанр')
	$sJanrs = StringReplace($sJanrs, ", ...", "")
А при сохранении файла нужно убрать "плохие" символы из имени:
Код: Выделить весь код
	$fName = StringReplace($Name, '\', '')
	$fName = StringReplace($fName, '/', '')
	$fName = StringReplace($fName, ':', '')
	$fName = StringReplace($fName, '*', '')
	$fName = StringReplace($fName, '?', '')
	$fName = StringReplace($fName, '"', '')
	$fName = StringReplace($fName, '<', '')
	$fName = StringReplace($fName, '>', '')
	$fName = StringReplace($fName, '|', '')
	$hOpen = FileOpen($fName & ".txt", 2)
Коряво, конечно, но меня устраивает

-------
Рекомендую: $25 на тест виртуального сервера (VPS) за регистрацию по ссылке


Последний раз редактировалось Habetdin, 19-08-2010 в 14:56.


Отправлено: 12:08, 18-08-2010 | #17



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Сбор информации с сайта и ее обработка.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Любой язык - Сбор информации о железе удаленных ПК OstJoker Скриптовые языки администрирования Windows 9 21-11-2012 13:38
Сбор информации о пользователях и группах. GamblerAN Microsoft Windows NT/2000/2003 5 30-11-2010 12:49
Скрытый сбор и анализ информации о пользователях информационных ресурсов Rostislav Хочу все знать 1 04-02-2008 16:37
Сбор информации о загруженности сервера. Zergling Microsoft Windows NT/2000/2003 1 04-06-2007 10:36




 
Переход