|
2014-03-21Дата: Пятница, 21.03.2014, 21:47 | Сообщение # 7 |
Генерал-майор
Группа: Проверенные
Статус: Offline
|
сколько пробовал найти ответ насчет парсирования и кодировки страницы результатов поиска гугла - всё бестолку... Однозначно есть те кто знают, но не говорят, а те кто предполагают - однозначного ответа не могут дать.Я даже не в курсе как происходит распарсивание у вас ))
Собственно вот весь код: Код public static void main(String[] args) { String url_get_page = "https://www.google.com/?gws_rd=cr&ei=Dm2pUpGxDoLnygPe7ICACg#q=java+%D0%B0+%D0%B5%D1%81%D0%BB%D0%B8+%D0%B5%D1%89%D0%B5+%D1%87%D1%82%D0%BE-%D1%82%D0%BE"; // StringBuffer result = new StringBuffer(); URL url; try { url = new URL(url_get_page); HttpURLConnection connection = null; connection = (HttpURLConnection) url.openConnection(); connection.setRequestProperty("host", "www.google.com"); connection.setRequestMethod("GET"); connection.setDoOutput(true); connection.setReadTimeout(10000); connection.setRequestProperty("path", "/search?sclient=psy-ab&q=java+%D0%B0+%D0%B5%D1%81%D0%BB%D0%B8+%D0%B5%D1%89%D0%B5+%D1%87%D1%82%D0%BE-%D1%82%D0%BE&oq=java+%D0%B0+%D0%B5%D1%81%D0%BB%D0%B8+%D0%B5%D1%89%D0%B5+%D1%87%D1%82%D0%BE-%D1%82%D0%BE&gs_l=serp.12...0.0.0.8034.0.0.0.0.0.0.0.0..0.0....0...1c..32.psy-ab..0.0.0.xJrFeiWdw9k&pbx=1&bav=on.2,or.r_cp.r_qf.&fp=ee2a56c569c4ba0f&biw=1920&bih=440&bvm=pv.xjs.s.en_US.rPdE4CKmgI4.O&tch=1&ech=1&psi=z5CpUtWOBI2IyQOeqYG4Dw.1386844370715.5"); connection.setRequestProperty("scheme", "https"); connection.setRequestProperty("version", "HTTP/1.1"); connection.setRequestProperty("accept", "*/*"); connection.setRequestProperty("accept-encoding", "gzip,deflate,sdch"); connection.setRequestProperty("accept-Language", "ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4"); connection.setRequestProperty("cookie", "SS=DQAAAMYAAADWc_LsJvZdJkG5wPeRQj7vUfXiSTs_xY1MmSAsmPz3OYeW7ZX131vmaUWpi2QmPSDMu928WO4VD-dn9Qz9JvIar475AUU5-beGFSODfeT6AzD6zN6UMg5Xrvd17fFy gYJksgGKCE0yi4t1Ls94dPdl9vTCzspioFG9_aUAMCqVGW_iVsgvESLF9kLR_YyJcuCSlV3xIZY4TNT_nz6KPAW68HAXvbpXRjb0QQZMiYJz38x35y1gy7NaGVUfg8ygniT0UOfSQgDQ qY7l2diyB7XK; PREF=ID=cbed0c85b04cfb13:U=a95f008f1f5dd197:LD=ru:TM=1301434702:LM=1372502508:DV=QoFzS7q0XRopjJ2zLor6CigGMRAff8o7TM646wymBAAAAAA:GM=1:S=D7ho ntM5nPdwL-9I; adsenseReferralSourceId=YXNv; adsenseReferralSubId=d3ctd3ctZXQtbmVsc29uX2Fkc2Vuc2U; adsenseReferralUrl=d3d3Lmdvb2dsZS5jb20vYWRzZW5zZS9zdGFydC8; S_adsense3-ui=W6s0hJX8d9hTsF1vBVWfeQ; S=adsense3-ui=M0mNINYoXoIlEWTbFrsN9w:payments=NzZgEfAliGfBlauFRghdbw:static_files=LNd08u89ydM; NID=67=QW7ryxl21VCNJ0iaPcADHUNvqQYZs88EmstqYk4WG4fG3P9D4nkPCVclun7XbLcICfsjsO9BkNymRgLghbZf4FtxGiGbFblAUE5TsCSu-Tc14NFaL4pEgdTbRpKqe6ERXUdhn lu3_zhPNgSt2S2-7CTrYs7FHXvni_iHO0HUcbORfi9I3uEsBcNkdEFPNs2SnDRNP15u2FEl5KE54BenFMaNUw5CEJyqwJn6A281ja-YT5zANOl2nF6X; HSID=AH5g8IWNAE0b08vsM; SSID=AAD-IXFijj44t2ifh; APISID=kOhYTsVR1wVo0ssj/AWAM-ufwM4JRGz9eZ; SAPISID=9JE3gDk9dyNMca1_/ACzINRU3YniwhBMJX; SID=DQAAAM0AAAABQt8uWUtORcspcjGlQdfRJ36Q3qAr-anqtCXjalLWzfv2hNlvKoYTQ6dg0JS3TJ7kzWqXEEEEQ3OWMp9q_8h3IC4heV_KtMH42absHEwcNNFBw70cwYqdEPeItHWu oMCpdr0Wp8TDAr4uCvfGvBzOam-1zq9GsP9_4N3OxoayPhEs1KziJGxk9gvAb_PG6C-CdhNuYUJLtVJx-u62Lp8sMg4yFIXgC2OcAEQ_tsscLRab3gOUKhth_Z3GtBYr5YCqO2l6IrlD WJYuzzro5jQw"); connection.setRequestProperty("referer", "https://www.google.com/"); connection.setRequestProperty("user-agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36"); connection.setRequestProperty("x-chrome-variations", "CKy1yQEIiLbJAQiktskBCKm2yQEIxLbJAQiehsoBCIaIygEIlorKAQ=="); connection.connect(); BufferedReader rd = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF8")); String line; ArrayList<Character> array= new ArrayList<Character>(); while ((line = rd.readLine()) != null) { int i=0; while (i!=line.length()){ array.add(line.charAt(i)); i++; } // result.append(line).append("\n"); } connection.disconnect(); outFile("C:/Users/tasya/Desktop/test.html", array); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) {
e.printStackTrace(); } // System.out.println(result.toString()); }
Добавлено (21.03.2014, 21:37) --------------------------------------------- где функция outFile - это я делал запись файл чисто для теста. А result - применяется для вывода сразу в консоль
Добавлено (21.03.2014, 21:42) --------------------------------------------- url_get_page = "https://www.google.com/?gws_rd=cr&ei=Dm2pUpGxDoLnygPe7ICACg#q=java+%D0%B0+%D0%B5%D1%81%D0%BB%D0%B8+%D0%B5%D1% Это в таком виде выглядит адрес страницы с запросом "java а если еще что-то". Вы можете попробовать скопипастить в адресную строку. Таким образом я передавал запрос к страницы по адресу.
connection.setRequestProperty - на разных форумах, вычитал что необходимо представлятся. Типо я браузер мазила - привет гугл - дай страницу по адресу... Эти поля и отвечают за представление серверам гугляДобавлено (21.03.2014, 21:47) ---------------------------------------------
Я даже не в курсе как происходит распарсивание у вас )) Окей, а если не на java - есть варианты ?
Сообщение отредактировал igrok - Пятница, 21.03.2014, 21:46 | | |
|
|
2014-03-21Дата: Пятница, 21.03.2014, 22:07 | Сообщение # 11 |
Генерал-майор
Группа: Проверенные
Статус: Offline
|
при этом страница Код https://www.google.com возвращает почти правильный ответ. не хватает некоторых мелочей. собственно вот код который возвращает обращение по этому адресу: Цитата <!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" dir="rtl"><head><meta content="/images/google_favicon_128.png" itemprop="image"><title>Google</title><script>(function(){ window.google={kEI:"9n0sU7LnMeS60wWQoYHwAw",getEI:function(a){for(var b;a&&(!a.getAttribute||!(b=a.getAttribute("eid")));)a=a.parentNode;return b||google.kEI},https:function(){return"https:"==window.location.protocol},kEXPI:"4006,17259,18168,4000116,4007661,4007830,4008067,4008133,40 08142,4009033,4009352,4009565,4009641,4010297,4010806,4010858,4010899,4011228,4011258,4011679,4012373,4012504,4013338,4013374,4013414,401341 6,4013591,4013723,4013747,4013787,4013823,4013966,4013979,4014016,4014431,4014515,4014636,4014649,4014671,4014792,4014804,4014813,4014991,40 15119,4015155,4015234,4015260,4015320,4015444,4015497,4015514,4015582,4015589,4015637,4015638,4015640,4015690,4015772,4015852,4015904,401599 1,4015994,4016007,4016047,4016062,4016139,4016167,4016193,4016304,4016311,4016323,4016406,8300007,8300015,8500148,8500157,10200002,10200012, 10200029,10200030,10200040,10200048,10200053,10200055,10200066,10200083,10200103,10200120,10200134,10200155,10200157",kCSI:{e:"4006,17259,18 168,4000116,4007661,4007830,4008067,4008133,4008142,4009033,4009352,4009565,4009641,4010297,4010806,4010858,4010899,4011228,4011258,4011679, 4012373,4012504,4013338,4013374,4013414,4013416,4013591,4013723,4013747,4013787,4013823,4013966,4013979,4014016,4014431,4014515,4014636,4014 649,4014671,4014792,4014804,4014813,4014991,4015119,4015155,4015234,4015260,4015320,4015444,4015497,4015514,4015582,4015589,4015637,4015638, 4015640,4015690,4015772,4015852,4015904,4015991,4015994,4016007,4016047,4016062,4016139,4016167,4016193,4016304,4016311,4016323,4016406,8300 007,8300015,8500148,8500157,10200002,10200012,10200029,10200030,10200040,10200048,10200053,10200055,10200066,10200083,10200103,10200120,1020 0134,10200155,10200157",ei:"9n0sU7LnMeS60wWQoYHwAw"},authuser:0,ml:function(){},kHL:"iw",time:function(){return(new Date).getTime()},log:function(a,b,c,h,k){var d= new Image,f=google.lc,e=google.li,g="";d.onerror=d.onload=d.onabort=function(){delete f[e]};f[e]=d;c||-1!=b.search("&ei=")||(g="&ei="+google.getEI(h));c=c||"/"+(k||"gen_204")+"?atyp=i&ct="+a+"&cad="+b+g+"&zx="+google.time();a=/^http:/i;a.test©&&google.https()?(google.ml(Error("GLMM"),!1,{src:c}),delete f[e]):(d.src=c,google.li=e+1)},lc:[],li:0,y:{},x:function(a,b){google.y[a.id]=[a,b];return!1},load:function(a,b,c){google.x({id:a+l++},function(){google.load(a,b,c)})}};var l=0;})(); (function(){google.sn="webhp";google.timers={};google.startTick=function(a,b){google.timers[a]={t:{start:google.time()},bfr:!!b}};google.tick=function(a,b,g){google.timers[a]||google.startTick(a);google.timers[a].t[b]=g||google.time()};google.startTick("load",!0); try{}catch(d){}})(); var _gjwl=location;function _gjuc(){var a=_gjwl.href.indexOf("#");if(0<=a&&(a=_gjwl.href.substring(a),0<a.indexOf("&q=")||0<=a.indexOf("#q="))&&(a=a.substring(1),-1==a.indexOf("#"))){for(var d=0;d<a.length;){var b=d;"&"==a.charAt(b)&&++b;var c=a.indexOf("&",b);-1==c&&(c=a.length);b=a.substring(b,c);if(0==b.indexOf("fp="))a=a.substring(0,d)+a.substring(c,a.length),c=d;else if("cad=h"==b)return 0;d=c}_gjwl.href="/search?"+a+"&cad=h";return 1}return 0} function _gjh(){!_gjuc()&&window.google&&google.x&&google.x({id:"GJH"},function(){google.nav&&google.nav.gjh&&google.nav.gjh()})}; window._gjh&&_gjh();</script><style>#gbar,#guser{font-size:13px;padding-top:1px !important;}#gbar{height:22px}#guser{padding-bottom:7px !important;text-align:left}.gbh,.gbd{border-top:1px solid #c9d7f1;font-size:1px}.gbh{height:0;position:absolute;top:24px;width:100%}@media all{.gb1{height:22px;margin-left:.5em;vertical-align:top}#gbar{float:right}}a.gb1,a.gb4{text-decoration:underline !important}a.gb1,a.gb4{color:#00c !important}.gbi .gb4{color:#dd8e27 !important}.gbf .gb4{color:#900 !important}</style><style>body,td,a,p,.h{font-family:arial,sans-serif}body{margin:0;overflow-y:scroll}#gog{padding:3px 8px 0}td{line-height:.8em}.gac_m td{line-height:17px}form{margin-bottom:20px}.h{color:#36c}.q{color:#00c}.ts td{padding:0}.ts{border-collapse:collapse}em{font-weight:bold;font-style:normal}.lst{height:25px;width:496px}.gsfi,.lst{font:18px arial,sans-serif}.gsfs{font:17px arial,sans-serif}.ds{display:inline-box;display:inline-block;margin:3px 0 4px;margin-right:4px}input{font-family:inherit}a.gb1,a.gb2,a.gb3,a.gb4{color:#11c !important}body{background:#fff;color:black}a{color:#11c;text-decoration:none}a:hover,a:active{text-decoration:underline}.fl a{color:#36c}a:visited{color:#551a8b}a.gb1,a.gb4{text-decoration:underline}a.gb3:hover{text-decoration:none}#ghead a.gb2:hover{color:#fff !important}.sblc{padding-top:5px}.sblc a{display:block;margin:2px 0;margin-right:13px;font-size:11px}.lsbb{background:#eee;border:solid 1px;border-color:#ccc #ccc #999 #999;height:30px}.lsbb{display:block}.ftl,#fll a{display:inline-block;margin:0 12px}.lsb{background:url(/images/srpr/nav_logo80.png) 0 -258px repeat-x;border:none;color:#000;cursor:pointer;height:30px;margin:0;outline:0;font:15px arial,sans-serif;vertical-align:top}.lsb:active{background:#ccc}.lst:focus{outline:none}#addlang a{padding:0 3px}.tiah{width:458px}</style><script></script></head><body bgcolor="#fff"><script>(function(){var src='/images/nav_logo176.png';var iesg=false;document.body.onload = function(){window.n && window.n();if (document.images){new Image().src=src;} if (!iesg){document.f&&document.f.q.focus();document.gbqf&&document.gbqf.q.focus();} } })();</script><textarea id="csi" style="display:none"></textarea><div id="mngb"> <div id=gbar><nobr><b class=gb1>зйфещ</b> <a class=gb1 href="https://www.google.co.il/imghp?hl=iw&tab=wi">ъоереъ</a> <a class=gb1 href="https://maps.google.co.il/maps?hl=iw&tab=wl">офеъ</a> <a class=gb1 href="https://www.youtube.com/?gl=IL&tab=w1">YouTube</a> <a class=gb1 href="https://news.google.co.il/nwshp?hl=iw&tab=wn">згщеъ</a> <a class=gb1 href="https://mail.google.com/mail/?tab=wm">Gmail</a> <a class=gb1 href="https://drive.google.com/?tab=wo">Drive</a> <a class=gb1 href="https://www.google.com/calendar?tab=wc">йеоп</a> <a class=gb1 style="text-decoration:none" href="http://www.google.co.il/intl/iw/options/"><u>тег</u> »</a></nobr></div><div id=guser width=100%><nobr><span id=gbn class=gbi></span><span id=gbf class=gbf></span><span id=gbe></span><a href="http://www.google.co.il/history/optout?hl=iw" class=gb4>дйсиешййъ аъшйн</a> | <a href="/preferences?hl=iw" class=gb4>двгшеъ</a> | <a target=_top id=gb_70 href="https://accounts.google.com/ServiceLogin?hl=iw&continue=https://www.google.co.il/%3Fgfe_rd%3Dcr%26ei%3D9n0sU4n6CZDN5AbSxYGwDA" class=gb4>дйлрс</a></nobr></div><div class=gbh style=left:0></div><div class=gbh style=right:0></div> </div><center><br clear="all" id="lgpd"><div id="lga"><a href="/search?site=&ie=UTF-8&q=%D7%90%D7%99%D7%99%D7%A8%D7%98%D7%95%D7%9F+%D7%A1%D7%A0%D7%94&oi=ddle&ct=ayrton-sennas-54th-birthday-5461506921594880-hp&hl=iw"><img alt="йен демгъ 54 маййшиеп срд" border="0" height="207" src="/logos/doodles/2014/ayrton-sennas-54th-birthday-5461506921594880-hp.jpg" title="йен демгъ 54 маййшиеп срд" width="600" id="hplogo" onload="window.lol&&lol()"><br></a><br></div><form action="/search" name="f"><table cellpadding="0" cellspacing="0"><tr valign="top"><td width="25%"> </td><td align="center" nowrap=""><input name="ie" value="windows-1255" type="hidden"><input value="iw" name="hl" type="hidden"><input name="source" type="hidden" value="hp"><div class="ds" style="height:32px;margin:4px 0"><div style="position:relative;zoom:1"><input style="color:#000;margin:0;padding:5px 6px 0 8px;vertical-align:top;padding-left:38px" autocomplete="off" class="lst tiah" value="" title="зйфещ б-Google" maxlength="2048" name="q" size="57"><img src="/textinputassistant/tia.png" style="position:absolute;cursor:pointer;left:5px;top:4px;z-index:300" onclick="(function(){var src='/textinputassistant/7/iw_tia.js';var s=document.createElement('script');s.src=src;google.dom.append(s);})();" alt="" height="23" width="27"></div></div><br style="line-height:0"><span class="ds"><span class="lsbb"><input class="lsb" value="зйфещ б-Google" name="btnG" type="submit"></span></span><span class="ds"><span class="lsbb"><input class="lsb" value="йеъш ожм ощлм" name="btnI" onclick="if(this.form.q.value)this.checked=1; else top.location='/doodles/'" type="submit"></span></span></td><td class="fl sblc" align="right" nowrap="" width="25%"><a href="/advanced_search?hl=iw&authuser=0">зйфещ оъчгн</a><a href="/language_tools?hl=iw&authuser=0">лмй щфд</a></td></tr></table><input id="gbv" name="gbv" type="hidden" value="1"></form><div id="gac_scont"></div><div style="font-size:83%;min-height:3.5em"><br><div id=als><font size=-1 id=addlang>Google.co.il вн б: <a href="https://www.google.co.il/setprefs?sig=0_bKnMmrIa8TrbtvIkrKSmGdgb4fE%3D&hl=ar&source=homepage">العربية</a> <a href="https://www.google.co.il/setprefs?sig=0_bKnMmrIa8TrbtvIkrKSmGdgb4fE%3D&hl=en&source=homepage">English</a></font><br><br></div></div><span id="footer"><div style="font-size:10pt"><div style="margin:19px auto;text-align:center" id="fll"><a href="/intl/iw/ads/"> фшсен б-Google</a><a href="http://www.google.co.il/intl/iw/services/">фъшереъ тсчййн</a><a href="/intl/iw/about.html">длм аегеъ Google</a><a href="https://www.google.co.il/setprefdomain?prefdom=US&sig=0_EbtlCS17FHCKYoEMSE4B3ocsdv8%3D" id="fehl" dir="ltr">Google.com</a></div></div><p style="color:#767676;font-size:8pt">© 2013 - <a href="/intl/iw/policies/">фшийеъ еърайн</a></p></span></center><div id=xjsd></div><div id=xjsi data-jiis="bp"><script>if(google.y)google.y.first=[];(function(){function b(a){window.setTimeout(function(){var c=document.createElement("script");c.src=a;document.getElementById("xjsd").appendChild©},0)}google.dljp=function(a){google.xjsu=a;b(a)};google.dlj=b;})(); if(!google.xjs){window._=window._||{};window._._DumpException=function(e){throw e};if(google.timers&&google.timers.load.t){google.timers.load.t.xjsls=new Date().getTime();}google.dljp('/xjs/_/js/k\x3dxjs.hp.en_US.X67G-1Nbjpc.O/m\x3dsb_he,pcc/rt\x3dj/d\x3d1/sv\x3d1/rs\x3dAItRSTO_vkVhEK6twEUdYclvmSrFcRL-Zw');google.xjs=1;}google.pmc={"sb_he":{"agen":true,"cgen":true,"client":"heirloom-hp","dh":true,"ds":"","eqch":true,"fl":true,"host":"google.co.il","jsonp":t rue,"msgs":{"dym":"дан дълееръ м:","lcky":"йеъш ожм ощлм","lml":"мойгт ресу","oskt":"лмй джрд","psrc":"зйфещ жд десш о\u003Ca href=\"/history\"\u003Eдйсиешййъ дайришри\u003C/a\u003E щмк","psrl":"дсш","sbit":"зфщ мфй ъоерд","srch":"зйфещ б-Google"},"ovr":{},"pq":"","qcpw":false,"scd":10,"sce":5,"stok":"BVNkfloUyqrCWTwyfRRCZd121wM"},"pcc":{}};google.y.first.push(function(){if(google.med){google.med('init');google.initHistory();google.med('history');}});if(google.j&&google.j.en&&google.j.xi){window.setTimeout(google.j.xi,0);}</script></div><script>(function(){if(google.timers&&google.timers.load.t){var b,c,d,e,g=function(a,f){a.removeEventListener?(a.removeEventListener("load",f,!1),a.removeEventListener("error",f,!1)):(a.detachEvent("onloa d",f),a.detachEvent("onerror",f))},h=function(a){e=(new Date).getTime();++c;a=a||window.event;a=a.target||a.srcElement;g(a,h)},k=document.getElementsByTagName("img");b=k.length;for(var l=c=0,m;l<b;++l)m=k[l],m.complete||"string"!=typeof m.src||!m.src?++c:m.addEventListener?(m.addEventListener("load",h,!1),m.addEventListener("error", h,!1)):(m.attachEvent("onload",h),m.attachEvent("onerror",h));d=b-c;var n=function(){if(google.timers.load.t){google.timers.load.t.ol=(new Date).getTime();google.timers.load.t.iml=e;google.kCSI.imc=c;google.kCSI.imn=b;google.kCSI.imp=d;void 0!==google.stt&&(google.kCSI.stt=google.stt);google.csiReport&&google.csiReport()}};window.addEventListener?window.addEventListener("load",n,!1):window.attachEvent&& window.attachEvent("onload",n);google.timers.load.t.prt=e=(new Date).getTime()};})(); </script></body></html> Добавлено (21.03.2014, 22:04) --------------------------------------------- код возвращаемый программно, отличается от кода на странице Добавлено (21.03.2014, 22:07) ---------------------------------------------
отличается от кода на странице вернее у меня почему то не выходит отобразить идентично страницу
| | |
|