| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Парсинг выдачи поисковиков |
| Автор: Pcrepair 9.4.2013, 18:32 |
| Добрый день. Есть необходимость получить результаты выдачи по поисковым словам с гугля, яхуу, алтависты и подобных. Необходимо: - отправить запрос - получить страницу - собрать со страницы все УРЛ(потом отфильтровать мусор) Вопрос: что лучше использовать TwebBrowser, или TEmbeddedWB? оба являются надстройкой над ИЕ? а может ТХром попробовать? за последний год сделали уже что то рабочее? есть кто в курсе? |
| Автор: Akella 9.4.2013, 20:12 |
| Думаю, что idHttp.Get() будет достаточно |
| Автор: Pcrepair 10.4.2013, 06:36 |
| недостаточно - проверено и не с начала а уже с окончания |
| Автор: Poseidon 10.4.2013, 09:02 | ||||
Все зависит от того, что подразумевается под "получить страницу". Если в читаемом для пользователя виде, то без WB (или подобного) никак. Но если показывать результат не нужно, то idHttp действительно будет достаточно. Совершенно верно.
|
| Автор: Akella 10.4.2013, 09:52 |
А конкретнее, чего не хватает? |
| Автор: Pcrepair 10.4.2013, 14:24 | ||
этого самого - выдачи УРЛ ссайтов в ответ на передачу по GET запроса на поиск в хугль или яхуу шманьдекс и рамблЕр пока дают |
| Автор: Poseidon 10.4.2013, 15:16 |
| idHttp.Get() вернет тебе весь html-код ответа. Парси его и вытягивай что тебе надо. |
| Автор: Pcrepair 10.4.2013, 15:20 | ||
ага, вернет, в виде скриптов. что то не припомню где там у ИНДИ встроенный интерпретатор жаба-скрипт или вообще где он на делфи |
| Автор: Akella 10.4.2013, 16:08 |
| не знаю, не знаю у меня вот, названия, имена сайтов взял прямо из мемо текст и сохранил в файл, переименовал в html http://shot.qip.ru/00aAbU-1Myy9Dt0N/ открыл в лисе, поменял кодировки и вуаля http://shot.qip.ru/00aAbU-1Myy9Dt0M/ |
| Автор: Pcrepair 10.4.2013, 21:12 |
| а ключи? у меня: https://www.google.ru/search?ie=UTF-8&hl=ru&q=далее запрос у тебя: /search?q=запрос в браузере это не имеет значения(если запрос вводить через форму?) не прийдется ли постоянно менять настройки программы? яхуу еще пока проверяю(там можно получить сразу 50 УРЛ, что предпочтительнее) |
| Автор: Pcrepair 10.4.2013, 21:43 | ||
ну вот, яхуу как и ранее выдает мусор:
в ответ на запрос: http://search.yahoo.com/search;_ylt=A0oG7hIQsGVRe0wATeZXNyoA?p= (это из браузера срисованно) %D1%80%D1%8B%D0%B1%D0%B0%D0%BB%D0%BA%D0%B0%20%D0%BD%D0%B0%20%D0%BA%D0%B8%D0%BF%D1%80%D0%B5 (это слова запроса) &fr2=sb-top&fr=sfp (окончание УРЛ, все как в браузере) Может там нужно по другому формировать запрос? |
| Автор: Akella 10.4.2013, 21:59 |
| возможно по другому, например, с использованием UrdEncode/URLDecode, посмотри в адресную строку браузера, там ведь кириллица, а ты что отправляешь? |
| Автор: Pcrepair 10.4.2013, 22:25 |
| как раз то что скопированно из строки браузера(УТФ-8) и отправляю у меня на стенде три ЕДИТ: 1 - ввод УРЛ(http://search.yahoo.com/search;_ylt=A0oG7h...e0wATeZXNyoA?p= ) 2 - слова запроса после обработки их UrlEncode из кирилицы в (%D1%80%D1%8B%D0%B1%D0%B0%D0%BB%D0%BA%D0%B0%20%D0%BD%D0%B0%20%D0%BA%D0%B8%D0%BF%D1%80%D0%B5 ) 3 - окончание УРЛ(там обычно число страниц выдачи прописано) &fr2=sb-top&fr=sfp(в данном конкретном случае) потом три строки суммируются в одну и идут в Loader.Get(Url), ну все как обычно для шмандекса, рамблера и гугля(если добавить HTTPs) все более менее работает(хотя не ясно как из гугля выдоить 50 УРЛ сразу, неясно что будет если найти ссылку на следующую страницу и загрузить ее, читал там возможно косяки) яхуу и алтависта(что одно и тоже) выдают 100 УРЛ в запросе, к тому же у них в значительной мере другие сайты показаны по запросу никто не пробовал яхуу хакнуть? |