День добрый, Forbidden, помогите пожалуйста сделать парсет для парсинга ссылок по запросу с dogpile.com, с помощью Net::HTTP, что то не понимаю, как отфильтровать ссылки с выдачи, и сделать листинг страниц.
Небольшое пояснение В качестве Query format(Формат запроса) указываем http://www.dogpile.com/search/web?qsi=${pagenum}&q=${query}&fcop=results-bottom&fpid=2 - вместо ${pagenum} будет подставляться необходимый номер страницы, в ${query} будет подставляться наш запрос Добавляем опцию Use pages, указываем начало с первой страницы, всего 100 страниц, с шагом в 10(1, 11, 21 и т.п.) Добавляем опцию Parse custom result - основная часть составления парсера, здесь указываем регулярное выражение <div class="searchResult webResult">.*?<a class="resultTitle".*?ru=(.*?)& , выставляем флаги sg(s - точка включает в себя перенос строки, g - глобальный поиск, нам нужны все ссылки на страницы). Сохраняем результат в массив serp в элемент link - когда мы парсим несколько однотипных элементов(флаг g регулярного выражения) - мы сохраняем результат в массив, $1 означает первую группировку регулярного выражения Теперь изменим Result format(Формат результата) - укажем $serp.format('$link\n') - вывести все элементы link массива serp через новую строку - в результате получим список всех ссылок Добавим опцию Check next page - проверка на существование следующей страницы, укажем регулярное выражение <li class="paginationNext"> - если данное регулярные выражение не выполниться на текущей странице то парсинг завершиться В результате мы получим искомый список ссылок, за одним исключением - ему необходимо сделать uri decode, встроенной функции в парсере пока нет Код пресета(для импорта необходимо нажать на кнопку с синей стрелкой в Add Task):