Witam,
Jestem w trakcie pisania aplikacji, która (póki co) działać ma w ten sposób, aby wyciągać wyniki wyszukiwania danego zapytania w Google, a konkretnie tylko pogrubione słowa.
Wyszukując powiedzmy słowa rower:
Chciałbym wrzucić do tablicy słowa:
Rower
Rower
rower
ROWER
rowerze
Nie bardzo mogę poradzić sobie z JSONem, w którym otrzymywane są wyniki... Kod wygląda póki co następująco:
public void search(String query) throws IOException {
url = new URL("https://www.googleapis.com/customsearch/v1?key="+apiKey+"&cx="+cx+"&q="+query+"&alt=json");
//url = new URL("https://ajax.googleapis.com/ajax/services/search/patent?v=1.0&q="+query);
connection = url.openConnection();
builder = new StringBuilder();
reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
Collection<String> collection = new ArrayList<String>();
while((line = reader.readLine()) != null) {
builder.append(line);
System.out.println(line);
}
String jsonTXT = builder.toString();
JSONObject json = (JSONObject) JSONSerializer.toJSON(jsonTXT);
//JSONArray items = json.getJSONArray("items");
//System.out.println(items);
}
A otrzymany rezultat zapytania to:
{
"kind": "customsearch#search",
"url": {
"type": "application/json",
"template": "https://www.googleapis.com/customsearch/v1?q={searchTerms}&num={count?}&start={startIndex?}&lr={language?}&safe={safe?}&cx={cx?}&cref={cref?}&sort={sort?}&filter={filter?}&gl={gl?}&cr={cr?}&googlehost={googleHost?}&c2coff={disableCnTwTranslation?}&hq={hq?}&hl={hl?}&siteSearch={siteSearch?}&siteSearchFilter={siteSearchFilter?}&exactTerms={exactTerms?}&excludeTerms={excludeTerms?}&linkSite={linkSite?}&orTerms={orTerms?}&relatedSite={relatedSite?}&dateRestrict={dateRestrict?}&lowRange={lowRange?}&highRange={highRange?}&searchType={searchType}&fileType={fileType?}&rights={rights?}&imgSize={imgSize?}&imgType={imgType?}&imgColorType={imgColorType?}&imgDominantColor={imgDominantColor?}&alt=json"
},
"queries": {
"nextPage": [
{
"title": "Google Custom Search - rower",
"totalResults": "5450000",
"searchTerms": "rower",
"count": 10,
"startIndex": 11,
"inputEncoding": "utf8",
"outputEncoding": "utf8",
"safe": "off",
"cx": "009134150265459336339:gjpcciwrszu"
}
],
"request": [
{
"title": "Google Custom Search - rower",
"totalResults": "5450000",
"searchTerms": "rower",
"count": 10,
"startIndex": 1,
"inputEncoding": "utf8",
"outputEncoding": "utf8",
"safe": "off",
"cx": "009134150265459336339:gjpcciwrszu"
}
]
},
"context": {
"title": "*.pl"
},
"searchInformation": {
"searchTime": 0.249703,
"formattedSearchTime": "0,25",
"totalResults": "5450000",
"formattedTotalResults": "5Â 450Â 000"
},
"items": [
{
"kind": "customsearch#result",
"title": "Rower – Wikipedia, wolna encyklopedia",
"htmlTitle": "\u003cb\u003eRower\u003c/b\u003e – Wikipedia, wolna encyklopedia",
"link": "http://pl.wikipedia.org/wiki/Rower",
"displayLink": "pl.wikipedia.org",
"snippet": "Typowy współczesny rower klasyczny jest jednośladem dwukołowym. Ramy roweru wykonuje się ze stali zwykłych lub stopowych, stopów aluminium lub ...",
"htmlSnippet": "Typowy współczesny \u003cb\u003erower\u003c/b\u003e klasyczny jest jednośladem dwukołowym. Ramy \u003cbr\u003e \u003cb\u003eroweru\u003c/b\u003e wykonuje się ze stali zwykłych lub stopowych, stopów aluminium lub \u003cb\u003e...\u003c/b\u003e",
"cacheId": "5ZQ5NH_Y4g8J",
"formattedUrl": "pl.wikipedia.org/wiki/Rower",
"htmlFormattedUrl": "pl.wikipedia.org/wiki/\u003cb\u003eRower\u003c/b\u003e",
"pagemap": {
"cse_image": [
{
"src": "http://upload.wikimedia.org/wikipedia/commons/thumb/9/95/Rower-schemat_budowy.svg/400px-Rower-schemat_budowy.svg.png"
}
],
"cse_thumbnail": [
{
"width": "294",
"height": "171",
"src": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRY019FCzi7zt9cEKgryRjqjDq-eLgb49AUUbYyvMmpp_Mxb26P2_OvWQM"
}
]
}
},
{
"kind": "customsearch#result",
"title": "Rower.com.pl - sklep rowerowy ACTIVA , rowery mtb, akcesoria ...",
"htmlTitle": "\u003cb\u003eRower\u003c/b\u003e.com.pl - sklep rowerowy ACTIVA , \u003cb\u003erowery\u003c/b\u003e mtb, akcesoria \u003cb\u003e...\u003c/b\u003e",
"link": "http://rower.com.pl/",
"displayLink": "rower.com.pl",
"snippet": "Zapoznaj siê z ofert¹ naszego sklepu rowerowego. W naszym sklepie znajdziesz odpowiedni dla Ciebie rower, odzie¿, akcesoria, cz ¶ci rowerowe z gwarancja ...",
"htmlSnippet": "Zapoznaj siê z ofert¹ naszego sklepu rowerowego. W naszym sklepie znajdziesz \u003cbr\u003e odpowiedni dla Ciebie \u003cb\u003erower\u003c/b\u003e, odzie¿, akcesoria, cz ¶ci rowerowe z gwarancja \u003cb\u003e...\u003c/b\u003e",
"cacheId": "pcu_ikQ11TQJ",
"formattedUrl": "rower.com.pl/",
"htmlFormattedUrl": "\u003cb\u003erower\u003c/b\u003e.com.pl/"
},
{
"kind": "customsearch#result",
"title": "Rowery: Strona Aktywnych RowerzystĂłw - Rowery.Sport.pl",
"htmlTitle": "\u003cb\u003eRowery\u003c/b\u003e: Strona Aktywnych RowerzystĂłw - \u003cb\u003eRowery\u003c/b\u003e.Sport.pl",
"link": "http://polskanarowery.sport.pl/",
"displayLink": "polskanarowery.sport.pl",
"snippet": "Polska na rowery - rower w mieście, turystyka rowerowa, mtb, prawo rowerowe, bezpieczeństwo rowerzystów, blogi rowerowe. Najlepszy serwis rowerowy w ...",
"htmlSnippet": "Polska na \u003cb\u003erowery\u003c/b\u003e - \u003cb\u003erower\u003c/b\u003e w mieście, turystyka rowerowa, mtb, prawo rowerowe, \u003cbr\u003e bezpieczeństwo rowerzystów, blogi rowerowe. Najlepszy serwis rowerowy w \u003cb\u003e...\u003c/b\u003e",
"formattedUrl": "polskanarowery.sport.pl/",
"htmlFormattedUrl": "polskana\u003cb\u003erowery\u003c/b\u003e.sport.pl/",
"pagemap": {
"cse_image": [
{
"src": "http://bi.gazeta.pl/im/2/11386/z11386052M.jpg"
}
],
"cse_thumbnail": [
{
"width": "236",
"height": "157",
"src": "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcTDE46-FdHoXTQwvCq0HgNZCOYLhF8ZOGBN6-Ji8pGRKyXu8Dbbg_ffd7pw"
}
],
"metatags": [
{
"og:site_name": "Polska na rowery",
"fb:app_id": "498486133505946"
}
]
}
},
{
"kind": "customsearch#result",
"title": "Rowery Zasada Group | Rowery - rowery gĂłrskie, bmx, rowery ...",
"htmlTitle": "\u003cb\u003eRowery\u003c/b\u003e Zasada Group | \u003cb\u003eRowery\u003c/b\u003e - \u003cb\u003erowery\u003c/b\u003e gĂłrskie, bmx, \u003cb\u003erowery\u003c/b\u003e \u003cb\u003e...\u003c/b\u003e",
"link": "http://www.zasada-rowery.pl/",
"displayLink": "www.zasada-rowery.pl",
"snippet": "Zasada Group - rowery górskie, bmx, rowery miejskie - jesteśmy jedną z czołowych polskich firm producenckich na rynku rowerowym.",
"htmlSnippet": "Zasada Group - \u003cb\u003erowery\u003c/b\u003e górskie, bmx, \u003cb\u003erowery\u003c/b\u003e miejskie - jesteśmy jedną z \u003cbr\u003e czołowych polskich firm producenckich na rynku rowerowym.",
"cacheId": "VIibACPxvOAJ",
"formattedUrl": "www.zasada-rowery.pl/",
"htmlFormattedUrl": "www.zasada-\u003cb\u003erowery\u003c/b\u003e.pl/",
"pagemap": {
"cse_image": [
{
"src": "http://www.zasada-rowery.pl/files/bikes/5/items/32/86/small/artist-cocco_24_a.jpg"
}
],
"cse_thumbnail": [
{
"width": "108",
"height": "108",
"src": "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSEh0IyeJyoqH3s40P420GsdBzcnvfQu6IhUloF0363TqSpbYhu26ru"
}
]
}
},
{
"kind": "customsearch#result",
"title": "Rowery gĂłrskie, turystyczne, miejskie i dla dzieci | Kross - Rower ...",
"htmlTitle": "\u003cb\u003eRowery\u003c/b\u003e gĂłrskie, turystyczne, miejskie i dla dzieci | Kross - \u003cb\u003eRower\u003c/b\u003e \u003cb\u003e...\u003c/b\u003e",
"link": "http://www.kross.pl/",
"displayLink": "www.kross.pl",
"snippet": "Producent rowerów. Historia, oferta i wydarzenia z dziedziny sportów rowerowych. Sieć dystrybucji.",
"htmlSnippet": "Producent \u003cb\u003erowerów\u003c/b\u003e. Historia, oferta i wydarzenia z dziedziny sportów \u003cbr\u003e rowerowych. Sieć dystrybucji.",
"cacheId": "NI-OQ3whk8wJ",
"formattedUrl": "www.kross.pl/",
"htmlFormattedUrl": "www.kross.pl/",
"pagemap": {
"cse_image": [
{
"src": "http://www.kross.pl/sites/default/files/hp_images/glowna_3.jpg"
}
],
"cse_thumbnail": [
{
"width": "261",
"height": "193",
"src": "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcQqXl7_AbV5LbAQ2yuQob4DdMu5jMorzZhKxwkulPY6qFW4BMZPZnAhuJQ"
}
]
}
},
{
"kind": "customsearch#result",
"title": "Zdrowy Rower | Wyprawy rowerowe po Polsce i Europie",
"htmlTitle": "Zdrowy \u003cb\u003eRower\u003c/b\u003e | Wyprawy rowerowe po Polsce i Europie",
"link": "http://www.zdrowy-rower.pl/",
"displayLink": "www.zdrowy-rower.pl",
"snippet": "Test roweru na zimę – zamiast przedniego koła są płozy – stabilizują tor jazdy, pozwalają na lepsze pokonywanie głębokiego śniegu. Tylna opona kolcowana ...",
"htmlSnippet": "Test \u003cb\u003eroweru\u003c/b\u003e na zimę – zamiast przedniego koła są płozy – stabilizują tor jazdy, \u003cbr\u003e pozwalają na lepsze pokonywanie głębokiego śniegu. Tylna opona kolcowana \u003cb\u003e...\u003c/b\u003e",
"cacheId": "Y8lO3yfgIqsJ",
"formattedUrl": "www.zdrowy-rower.pl/",
"htmlFormattedUrl": "www.zdrowy-\u003cb\u003erower\u003c/b\u003e.pl/",
"pagemap": {
"cse_image": [
{
"src": "http://46.31.34.172/wordpress/wp-content/uploads/2012/08/IMG_3476-1024x683.jpg"
}
],
"cse_thumbnail": [
{
"width": "275",
"height": "183",
"src": "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcT-DeB8N6cz8OCvGcjiBCUWGpdX7KrWwPbXoVwCkJ7W_2zLp0RqEAIr9MU"
}
],
"metatags": [
{
"http://ogp.me/ns#locale": "pl_PL",
"http://ogp.me/ns#site_name": "Zdrowy Rower",
"http://ogp.me/ns#type": "website",
"http://ogp.me/ns#title": "Zdrowy Rower",
"http://ogp.me/ns#description": "Wyprawy rowerowe po Polsce i Europie",
"http://ogp.me/ns/fb#app_id": "437796862945093"
}
]
}
},
{
"kind": "customsearch#result",
"title": "Zarząd Transportu Miejskiego w Poznaniu - Poznański Rower ...",
"htmlTitle": "Zarząd Transportu Miejskiego w Poznaniu - Poznański \u003cb\u003eRower\u003c/b\u003e \u003cb\u003e...\u003c/b\u003e",
"link": "http://www.ztm.poznan.pl/komunikacja/rowery/pozna-ski-rower-miejski-prm/",
"displayLink": "www.ztm.poznan.pl",
"snippet": "Komunikacja » Rowery » Poznański Rower Miejski (PRM). INFOLINIA: 22 382 13 12 lub 22 244 13 13. Obsługa bezpośrednia w każdy poniedziałek w ...",
"htmlSnippet": "Komunikacja » \u003cb\u003eRowery\u003c/b\u003e » Poznański \u003cb\u003eRower\u003c/b\u003e Miejski (PRM). INFOLINIA: 22 382 13 \u003cbr\u003e 12 lub 22 244 13 13. Obsługa bezpośrednia w każdy poniedziałek w \u003cb\u003e...\u003c/b\u003e",
"cacheId": "pIqe_HPcEzAJ",
"formattedUrl": "www.ztm.poznan.pl/.../rowery/pozna-ski-rower-miejski-prm/",
"htmlFormattedUrl": "www.ztm.poznan.pl/.../\u003cb\u003erowery\u003c/b\u003e/pozna-ski-\u003cb\u003erower\u003c/b\u003e-miejski-prm/",
"pagemap": {
"cse_image": [
{
"src": "http://www.ztm.poznan.pl/assets/Uploads/Rowery/PRMlokalizacjestacji.jpg"
}
],
"cse_thumbnail": [
{
"width": "267",
"height": "188",
"src": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcR0xpgcTr9J1IvDM0tHwjOL2kA3s13fjqPhJ1eyWOJf5rbW0sr07_8xUGw"
}
]
}
},
{
"kind": "customsearch#result",
"title": "LECH JANERKA ROWER 2005 - YouTube",
"htmlTitle": "LECH JANERKA \u003cb\u003eROWER\u003c/b\u003e 2005 - YouTube",
"link": "http://www.youtube.com/watch?v=0lYUrZdHx10",
"displayLink": "www.youtube.com",
"snippet": "25 Kwi 2008 ... LECH JANERKA ROWER 2005. RAFALGARCAREK·8 videos. Subscribe ... Thumbnail Jade na rowerze do byle gdzie by wla100 4,367 views ...",
"htmlSnippet": "25 Kwi 2008 \u003cb\u003e...\u003c/b\u003e LECH JANERKA \u003cb\u003eROWER\u003c/b\u003e 2005. RAFALGARCAREK·8 videos. Subscribe \u003cb\u003e...\u003c/b\u003e \u003cbr\u003e Thumbnail Jade na \u003cb\u003erowerze\u003c/b\u003e do byle gdzie by wla100 4,367 views \u003cb\u003e...\u003c/b\u003e",
"cacheId": "-8fwFIiCvokJ",
"formattedUrl": "www.youtube.com/watch?v=0lYUrZdHx10",
"htmlFormattedUrl": "www.youtube.com/watch?v=0lYUrZdHx10",
"pagemap": {
"cse_image": [
{
"src": "http://i1.ytimg.com/vi/0lYUrZdHx10/mqdefault.jpg"
}
],
"videoobject": [
{
"url": "http://www.youtube.com/watch?v=0lYUrZdHx10",
"name": "LECH JANERKA ROWER 2005",
"description": "videoclip 2005 Yach Festival 2005 Grand Prix",
"duration": "PT2M49S",
"unlisted": "False",
"paid": "False",
"thumbnailurl": "http://i1.ytimg.com/vi/0lYUrZdHx10/hqdefault.jpg",
"embedurl": "http://www.youtube.com/v/0lYUrZdHx10?version=3&autohide=1",
"playertype": "Flash",
"width": "480",
"height": "360",
"isfamilyfriendly": "False",
"regionsallowed": "AD,AE,AF,AG,AI,AL,AM,AO,AQ,AR,AS,AT,AU,AW,AX,AZ,BA,BB,BD,BE,BF,BG,BH,BI,BJ,BL,BM,BN,BO,BQ,BR,BS,BT,BV,BW,BY,BZ,CA,CC,CD,CF,CG,CH,CI,CK,CL,CM,CN,CO,CR,CU,CV,CW,CX,CY,CZ,DE,DJ,DK,DM,DO,DZ,EC,EE,EG,EH..."
}
],
"person": [
{
"url": "http://www.youtube.com/user/RAFALGARCAREK"
}
],
"metatags": [
{
"title": "LECH JANERKA ROWER 2005",
"og:url": "http://www.youtube.com/watch?v=0lYUrZdHx10",
"og:title": "LECH JANERKA ROWER 2005",
"og:description": "videoclip 2005 Yach Festival 2005 Grand Prix",
"og:type": "video",
"og:image": "http://i1.ytimg.com/vi/0lYUrZdHx10/mqdefault.jpg",
"og:video": "http://www.youtube.com/v/0lYUrZdHx10?version=3&autohide=1",
"og:video:type": "application/x-shockwave-flash",
"og:video:width": "480",
"og:video:height": "360",
"og:site_name": "YouTube",
"fb:app_id": "87741124305",
"twitter:player:width": "480",
"twitter:player:height": "360",
"og:restrictions:age": "18+"
}
],
"imageobject": [
{
"url": "http://i1.ytimg.com/vi/0lYUrZdHx10/mqdefault.jpg",
"width": "320",
"height": "180"
}
]
}
},
{
"kind": "customsearch#result",
"title": "PrzewĂłz roweru - Przewozy Regionalne",
"htmlTitle": "PrzewĂłz \u003cb\u003eroweru\u003c/b\u003e - Przewozy Regionalne",
"link": "http://www.przewozyregionalne.pl/przewoz-roweru.html",
"displayLink": "www.przewozyregionalne.pl",
"snippet": "Podróżny może zabrać ze sobą do pociągu jeden nieopakowany rower i przewieźć go odpłatnie. Złożony i opakowany rower nie podlega opłacie i jest ...",
"htmlSnippet": "Podróżny może zabrać ze sobą do pociągu jeden nieopakowany \u003cb\u003erower\u003c/b\u003e i \u003cbr\u003e przewieźć go odpłatnie. Złożony i opakowany \u003cb\u003erower\u003c/b\u003e nie podlega opłacie i jest \u003cb\u003e...\u003c/b\u003e",
"cacheId": "PixGbb4buPsJ",
"formattedUrl": "www.przewozyregionalne.pl/przewoz-roweru.html",
"htmlFormattedUrl": "www.przewozyregionalne.pl/przewoz-\u003cb\u003eroweru\u003c/b\u003e.html"
},
{
"kind": "customsearch#result",
"title": "SIXSIXONE - Informacje o firmie - ROWER+SPORT",
"htmlTitle": "SIXSIXONE - Informacje o firmie - \u003cb\u003eROWER\u003c/b\u003e+SPORT",
"link": "http://www.rowersport.pl/",
"displayLink": "www.rowersport.pl",
"snippet": "Mamy dla Was kolejne filmy sponsorowanego przez nas juĹĽ od 3 sezonĂłw teamu zjazdowego Rockets Crew. Tym razem kilka europejskich klasykĂłw takich jak ...",
"htmlSnippet": "Mamy dla Was kolejne filmy sponsorowanego przez nas juĹĽ od 3 sezonĂłw teamu \u003cbr\u003e zjazdowego Rockets Crew. Tym razem kilka europejskich klasykĂłw takich jak \u003cb\u003e...\u003c/b\u003e",
"cacheId": "rnpD_kYAeDYJ",
"formattedUrl": "www.rowersport.pl/",
"htmlFormattedUrl": "www.\u003cb\u003erowers\u003c/b\u003eport.pl/",
"pagemap": {
"metatags": [
{
"author": "4projekt.pl"
}
]
}
}
]
}
Jak wyciągnąć pogrubione słowa? Widzę, że są one umieszczone między znacznikami \u003cb\u003eRower**\u003c/b\u003e**, ale nie bardzo wiem jak je wyciągnąć...