page title
, description
및 keywords
을 자바에서 가져오고 싶습니다.자바에서 트위터 페이지 제목, 설명 및 키워드를
나는 이것에 대해 여러 번 고글을 쓰지만 해결책을 찾지 못했습니다. 모든 사람들이 ISO-8859 문자 세트 형식으로 응답 해주었습니다. UTF-8 문자 세트 형식으로 응답 해주십시오.
public class TitDesKey
{
public static void main (String[] args) throws IOException
{
String inputLine,source= null,result_tit= null,result_des= null,result_key= null;
try
{
URL url = new URL("http://www.twitter.com");
URLConnection conn = url.openConnection();
conn.setRequestProperty("User-Agent","Mozilla/5.0 (X11; U; Linux x86_64; en-GB; rv:1.8.1.6) Gecko/20070723 Iceweasel/2.0.0.6 (Debian-2.0.0.6-0etch1)");
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
while ((inputLine = in.readLine()) != null)
{
source=source+" "+inputLine;
if(inputLine.contains("</head>"))
{
break;
}
}
}
catch (MalformedURLException e)
{
System.out.println("Please Enter Write Information");
}
catch (IOException e)
{
System.out.println("Please Enter Write Information");
}
// Title Data
Pattern PATTERN_tit = Pattern.compile("<title>(.*?)</title>", Pattern.CASE_INSENSITIVE|Pattern.DOTALL);
Matcher m_tit = PATTERN_tit.matcher(source);
while (m_tit.find())
{
result_tit = m_tit.group(1);
result_tit = result_tit.replace("/", "").trim();
System.out.println(result_tit);
}
// Description Data
Pattern Pattern_dis = Pattern.compile("<meta name=\"description\" content=(.*?)>", Pattern.CASE_INSENSITIVE|Pattern.DOTALL);
Matcher m_dis = Pattern_dis.matcher(source);
while (m_dis.find())
{
result_des = m_dis.group(1);
result_des = result_des.replace("/", "").trim();
System.out.println(result_des);
}
// Keyword Data
Pattern Pattern_key = Pattern.compile("<meta name=\"keywords\" content=(.*?)>",Pattern.CASE_INSENSITIVE|Pattern.DOTALL);
Matcher m_key = Pattern_key.matcher(source);
while (m_key.find())
{
result_key = m_key.group(1);
result_key = result_key.replace("/", "").trim();
System.out.println(result_key);
}
}
}
나는 이것에 대한 코드 아래 사용
는, 사전에 감사합니다.
응답 문자셋 (이 경우 라틴어 1)을 사용하고 나면 UTF-8로 변환해야합니다. –
요청 속성 "Accept-Charset : utf-8"을 설정하려고 시도 했습니까? – korifey
이 BufferedReader를 = 새로운 BufferedReader에서 사용했습니다 (새로운 InputStreamReader (conn.getInputStream(), "utf-8")); –