Парсинг выдачи поисковиков

 
0
 
Delphi, Kylix & Pascal
ava
Pcrepair | 09.04.2013, 19:32
Добрый день. Есть необходимость получить результаты выдачи по поисковым словам с гугля, яхуу, алтависты и подобных.
Необходимо:
- отправить запрос
- получить страницу
- собрать со страницы все УРЛ(потом отфильтровать мусор)

Вопрос: что лучше использовать TwebBrowser, или TEmbeddedWB?
оба являются надстройкой над ИЕ?
а может ТХром попробовать? за последний год сделали уже что то рабочее?
есть кто в курсе?
Comments (14)
ava
Akella | 09.04.2013, 20:12 #
Думаю, что idHttp.Get() будет достаточно
ava
northener | 10.04.2013, 01:30 #
Цитата (Pcrepair @  9.4.2013,  18:32 findReferencedText)
Добрый день. Есть необходимость получить результаты выдачи по поисковым словам с гугля, яхуу, алтависты и подобных.

Необходимо:

- отправить запрос

- получить страницу

- собрать со страницы все УРЛ(потом отфильтровать мусор)



Вопрос: что лучше использовать TwebBrowser, или TEmbeddedWB?

Шо, опять с начала?
ava
Pcrepair | 10.04.2013, 06:36 #
недостаточно - проверено

и не с начала а уже с  окончания
ava
Poseidon | 10.04.2013, 09:02 #
Цитата (Pcrepair @  9.4.2013,  18:32 findReferencedText)
Необходимо:

- отправить запрос

- получить страницу

- собрать со страницы все УРЛ(потом отфильтровать мусор)



Вопрос: что лучше использовать TwebBrowser, или TEmbeddedWB?

Все зависит от того, что подразумевается под "получить страницу". Если в читаемом для пользователя виде, то без WB (или подобного) никак. Но если показывать результат не нужно, то idHttp действительно будет достаточно.

Цитата (Pcrepair @  9.4.2013,  18:32 findReferencedText)
оба являются надстройкой над ИЕ?

Совершенно верно.

Цитата (Pcrepair @  9.4.2013,  18:32 findReferencedText)
а может ТХром попробовать? за последний год сделали уже что то рабочее?
Зачем? TWebBrowser хорошо описан, куча примеров, IE по умолчанию устанавливается всем. Это уже велосипед.
ava
Akella | 10.04.2013, 09:52 #
Цитата (Pcrepair @  10.4.2013,  06:36 findReferencedText)
недостаточно - проверено


А конкретнее, чего не хватает?
ava
Pcrepair | 10.04.2013, 14:24 #
Цитата (Akella @ 10.4.2013,  09:52)
Цитата (Pcrepair @  10.4.2013,  06:36 \\"findReferencedText\\")
недостаточно - проверено




А конкретнее, чего не хватает?

этого самого - выдачи УРЛ ссайтов в ответ на передачу по GET запроса на поиск в хугль или яхуу
шманьдекс и рамблЕр пока дают
ava
Poseidon | 10.04.2013, 15:16 #
idHttp.Get() вернет тебе весь html-код ответа. Парси его и вытягивай что тебе надо.
ava
Pcrepair | 10.04.2013, 15:20 #
Цитата (Poseidon @ 10.4.2013,  15:16)
idHttp.Get() вернет тебе весь html-код ответа. Парси его и вытягивай что тебе надо.

ага, вернет, в виде скриптов. что то не припомню где там у ИНДИ встроенный интерпретатор жаба-скрипт
или вообще где он на делфи
ava
Akella | 10.04.2013, 16:08 #
не знаю, не знаю :)

у меня вот, названия, имена сайтов
[img]http://f1.s.qip.ru/~Myy9Dt0M.png[/img]
ava
Pcrepair | 10.04.2013, 21:12 #
а ключи?
у меня:
https://www.google.ru/search?ie=UTF-8&hl=ru&q=далее запрос
у тебя:
/search?q=запрос

в браузере это не имеет значения(если запрос вводить через форму?)
не прийдется ли постоянно менять настройки программы?

яхуу еще пока проверяю(там можно получить сразу 50 УРЛ, что предпочтительнее)
ava
Pcrepair | 10.04.2013, 21:43 #
ну вот, яхуу как и ранее выдает мусор:

http://ac.ybinst7.ec.yimg.com/ec/fd/ls/l?ig=4a06eedbc92d4b6baf5165b1a87ad6b1&cid=0312816228f052fd81280446f182e998&type=event.cpt
http://l.yimg.com/pv/i/us/sch/gr4/smsprt_20090407.png);background-repeat:no-repeat;font-size:
http://l.yimg.com/pv/static/img/us-metro-sprite-201303041617.png);}#att-tab{height:13px;position:relative;width:49px;z-index:4}#att_icon{background-position:-160px
http://l.yimg.com/zz/combo?
http://l.yimg.com/zz/combo?pv/static/lib/srp-core-css_201301090955.css&kx/ucs/uh/css/291/yunivhead-min.css&kx/ucs/uh/css/221/logo-min.css&kx/ucs/avatar/css/17/avatar-min.css&kx/ucs/notif_v2/css/145/notifications_v2-min.css&kx/ucs/mailcount/css/39/mailcount_v2-min.css&kx/ucs/mailcount/css/37/mail_preview-min.css&kx/ucs/breakingnews/css/12/breaking_news-min.css
http://sm-a1.yimg.com/image/?url=http%3a%2f%2fimg.youtube.com%2fvi%2f1loe16ibrh8%2fdefault.jpg&t=1365619112&ttl=43200&maxwidth=98&maxheight=74&sig=4zwdbqlfal0ux7izfttclg--~b
http://sm-a1.yimg.com/image/?url=http%3a%2f%2fimg.youtube.com%2fvi%2fuu07pzfxsa4%2fdefault.jpg&t=1365619112&ttl=43200&maxwidth=98&maxheight=74&sig=kredbsnrb_w7ewhkxf.t1q--~b
http:\/\/ac.ybinst7.ec.yimg.com\/ec\/fd\/ls\/glinkping.aspx?ig=4a06eedbc92d4b6baf5165b1a87ad6b1\u0026cid=0312816228f052fd81280446f182e998
http:\/\/ac.ybinst7.ec.yimg.com\/ec\/fd\/ls\/l?ig=4a06eedbc92d4b6baf5165b1a87ad6b1\u0026cid=0312816228f052fd81280446f182e998\u0026type=event.cpt
http:\/\/img.youtube.com\/vi\/1loe16ibrh8\/mqdefault.jpg
http:\/\/img.youtube.com\/vi\/uu07pzfxsa4\/mqdefault.jpg
http:\/\/l.yimg.com\/dh\/ap\/ap\/default\/120503\/uh_sprite_2_16.png
http:\/\/l.yimg.com\/pv\/i\/us\/sch\/gr4\/sp-progress2.gif
http:\/\/l.yimg.com\/pv\/static\/img\/shortcut_metro_sprite-png24-201303011357.png
http:\/\/l.yimg.com\/zz\/combo?kx\/ucs\/sts\/js\/442\/skip-min.js\u0026kx\/ucs\/uh\/js\/279\/timestamp_library-min.js\u0026kx\/ucs\/menu_utils\/js\/164\/menu_utils_v2-min.js\u0026kx\/ucs\/uh\/js\/267\/aria_toolbar-min.js\u0026kx\/ucs\/username\/js\/43\/user_menu-min.js\u0026kx\/ucs\/help\/js\/41\/help_menu-min.js\u0026kx\/ucs\/utility_link\/js\/20\/utility_menu-min.js\u0026kx\/ucs\/uh\/js\/262\/logo_debug-min.js\u0026kx\/ucs\/common\/js\/131\/jsonp-super-cached-min.js\u0026kx\/ucs\/avatar\/js\/23\/avatar-min.js\u0026kx\/ucs\/common\/js\/131\/jsonp-cached-min.js\u0026kx\/ucs\/notif_v2\/js\/177\/notifications_bootstrap-min.js\u0026kx\/ucs\/mailcount\/js\/68\/mailcount_v2-min.js\u0026kx\/ucs\/common\/js\/133\/jsonp-cached-min.js\u0026kx\/ucs\/breakingnews\/js\/24\/breaking_news-min.js\u0026kx\/ucs\/uh\/js\/286\/activate_library-min.js
http:\/\/www.youtube.com\/v\/1loe16ibrh8\u0026autoplay=1
http:\/\/www.youtube.com\/v\/uu07pzfxsa4\u0026autoplay=1
http:\/\/www.youtube.com\/watch?v=1loe16ibrh8
http:\/\/www.youtube.com\/watch?v=uu07pzfxsa4

в ответ на запрос:
http://search.yahoo.com/search;_ylt=A0oG7h...e0wATeZXNyoA?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 (окончание УРЛ, все как в браузере)

Может там нужно по другому формировать запрос?
ava
Akella | 10.04.2013, 21:59 #
возможно по другому, например, с использованием UrdEncode/URLDecode, посмотри в адресную строку браузера, там ведь кириллица, а ты что отправляешь?
ava
Pcrepair | 10.04.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 УРЛ в запросе, к тому же у них в значительной мере другие сайты показаны по запросу

никто не пробовал яхуу хакнуть?
ava
Akella | 11.04.2013, 09:29 #
Цитата (Pcrepair @  10.4.2013,  22:25 findReferencedText)
как раз то что скопированно из строки браузера(УТФ-8) и отправляю

дык нужно ж не просто в UTF8
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
advanced
Submit