Praca z wynikami wyszukiwania Google

0

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:
user image

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ąć...

0

Trochę na okrętkę, ale za pomocą wyrażeń regularnych.

0

Już sobie poradziłem, ale dzięki... chodziło mi bardziej o podpowiedź odnośnie jakiejś klasy, funkcji, czy ogólniej biblioteki ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1