Получить href всех ссылок

Все вопросы касающиеся использования
программы можно задать здесь
Ответить
santilo
Сообщения: 8
Зарегистрирован: 05 ноя 2010, 04:45

Получить href всех ссылок

Сообщение santilo » 19 апр 2012, 18:54

Добрый вечер парни! Помогите мне решить проблему. Мне надо получить href всех ссылок на странице. Ниже пример ссылки!

Код: Выделить всё

<a onclick="return booster_and_counter(this.href, 'http://rs.mail.ru/d312215.gif');" href="/mail/safonov-sergej/" class="mf_bold mf_t14">сергей</a>
Пробовал объект get_all_hrefs_by_inner_text , он прекрасно справляется , но собирает не все ссылки! Может как нибудь по этому атрибуту класса можно собрать class="mf_bold mf_t14" ,он в каждой такой ссылке есть!

И еще вопросик , как сохранить массив ссылок в файл , полученные вот таким образом
$link=$anchor->get_all_hrefs_by_inner_text("","");

Аватара пользователя
bigfozzy
Site Admin
Сообщения: 3057
Зарегистрирован: 28 июл 2008, 17:24
Контактная информация:

Re: Получить href всех ссылок

Сообщение bigfozzy » 20 апр 2012, 04:31

ссылки можно перебирать самому в цикле - т.е по номеру получать атрибуты и отбирать в массив или сразу в файл то что нужно, насчет сохранения в файл можно воспользоваться нашими классами $textfile или через PHP. Или нужен пример кода ?, тогда если можно ссылку сюда или в личку, пожалуйста

santilo
Сообщения: 8
Зарегистрирован: 05 ноя 2010, 04:45

Re: Получить href всех ссылок

Сообщение santilo » 20 апр 2012, 06:04

bigfozzy писал(а):ссылки можно перебирать самому в цикле - т.е по номеру получать атрибуты и отбирать в массив или сразу в файл то что нужно, насчет сохранения в файл можно воспользоваться нашими классами $textfile или через PHP. Или нужен пример кода ?, тогда если можно ссылку сюда или в личку, пожалуйста

Код: Выделить всё

<?php
$xhe_host ="127.0.0.1:7010";

// The following code is required to properly run XWeb Human Emulator
require("../Templates/xweb_human_emulator.php");

$login='svetlana.leskova.97';
$pass='svetlana.leskova';

$browser->navigate("http://my.mail.ru/");

if(strpos($webpage->get_body(),"выход")!=0) 
{
$input->set_value_by_name("Login","$login");
$input->set_value_by_name("Password","$pass");
$button->click_by_inner_text(" Войти ",true);
}

$input->set_focus_by_name("q");
$input->set_value_by_name("q","Сергей");
sleep(2);
$button->click_by_inner_text("Найти",true);

sleep(3);

while ($anchor->is_exist_by_inner_text("Далее ›",true))
{
$element->click_by_inner_text("Далее ›",true);
/* Вот этот выриант работает..только он собирает ссылки с 
заданным внутренним текстом, а мне надо собрать все ссылки */
echo $anchor->get_all_hrefs_by_inner_text("Сергей","\n");
sleep(5);
}

// Quit
$app->quit();
?>
И если можно допишите инструкцию для записи в файл полученных ссылок!

Аватара пользователя
xscripts
Сообщения: 80
Зарегистрирован: 24 янв 2012, 12:48
Контактная информация:

Re: Получить href всех ссылок

Сообщение xscripts » 20 апр 2012, 15:17

Вот так вот можно собрать все href на странице и записать их в файл c:\\href.txt:

Код: Выделить всё

$res="";
// получаем количество всех ссылок 
$cnts=$anchor->get_count();
// идём по всем ссылкам и собираем href 
for($i=0;$i<$cnts;$i++)
{
    $res.= $anchor->get_href_by_number($i)."\n";
}
// запишем полученные href в файл
$textfile->write_file("c:\\href.txt",$res,60);
http://x-scripts.com/

Код: Выделить всё

<?php
$xhe_host ="127.0.0.1:7010";

require("../Templates/xweb_human_emulator.php");

$browser->navigate("http://x-scripts.com");

$app->quit();?>

Аватара пользователя
Support
Site Admin
Сообщения: 1000
Зарегистрирован: 10 апр 2009, 17:45
Контактная информация:

Re: Получить href всех ссылок

Сообщение Support » 20 апр 2012, 15:27

Попробуйте вот так:

Код: Выделить всё

while ($anchor->is_exist_by_inner_text("Далее ›",true))
{
$element->click_by_inner_text("Далее ›",true);
$urls = $webpage->get_body_inter_prefix_all(');" href="/','">',true,0,0,"\r\n");
$textfile->add_string_to_file("C:\\123.txt",$urls,20) ;
sleep(5);
}

Ответить