5 последних сообщений пользователя ak167 |
PHP для начинающих [ Помогите в создании парсера ]
|
DySprozin, в самом первом сообщении этой темы я привел код для 3-х сообщений. На самом деле их 10 и все надо отпарсить=)
|
PHP для начинающих [ Помогите в создании парсера ]
|
DySprozin, теперь ясны эти моменты.
Подредактировал с учетом вышеизложенного. Теперь ссылки находяться, однако, всего для 3-х тем вместо 10! Т.е. находятся не все. В чем причина?
И еще вместо чистой ссылки она опять с ненужными примесями!
Нужно так: http://yandex.ru
А она вот так: href="http://yandex.ru"rel="nofollow"target="_blank">
Использую вот эту регулярку:
#href="([^<]+)"><img alt="#isU
Вроде как делаю все правильно по аналогии с той регуляркой, которую ты мне давал ранее для описания (#</i>([^<]+)</div>#isU), однако, описание получаеться чистое без примесей, а ссылка с лишними примесями, которые я испольовал в регулярке, т.е. с href=" и "rel="nofollow"target="_blank">. Почему так?
Особенно удивляет почему из десяти тем парсер извлекает ссылки только из трех.
|
PHP для начинающих [ Помогите в создании парсера ]
|
DySprozin, мануал я курил! Но там не все описано.
Например, из вашей регулярки после прочтения мануала мне не все ясно.
Вот например нормально работающщая регулярка опписания:
#</i>([^<]+)</div>#isU
ну знак # в начале и в концые это понятно. Далее </i> это то, по чему осуществляется поиск, тоже ясно.
Далее ([^<], как вы описали выше, значает без символов. В данном случаем без символа "<". Непонятно зачем и главное какое это имеет отношение к этому случаю?
Далее идет плюс и закрывается скобочка. Плюс это как я понимаю плюс еще какие-то сиволы, однако они не указаны в [a-z,0-9]. Почему?
Далее идет </div> и #isU. С этим тоже все понятно.
Буду благодярен, если ответите на мои вопросы. |
PHP для начинающих [ Помогите в создании парсера ]
|
DySprozin, все названия получал во так:
preg_match_all( '#target="_blank">([^<]+)</a>#isU', $text , $title );
потом приходилось чистить их вот так:
for ($i=0; $i<=9; $i++) { $tit = str_replace( 'target="_blank">', '', $title[0][$i] ); echo $tit;
}
А вот ссылки получить так и не удалось. Для их получения использовал вот такой код:
preg_match_all( '#href"([^href"]+)"#isU><img alt="#isU', $text , $link );
|
PHP для начинающих [ Помогите в создании парсера ]
|
DySprozin, хотя нет, все работает! Нужно было лишь кодировку на сайте сменить! 
Я даже попытался получить еще и название из этого html-кода. Но получилось вот что:
названиеtarget="_blank"
Использовал вот такую решулярку: #target="_blank">([^<]+)</a>#isU
А вот получить ссылку так и не получилось. Не подскажите как мне это сделать и как получить название без arget="_blank"? |