Java 通过标识标记从HTML获取信息

Java 通过标识标记从HTML获取信息,java,android,html-parsing,Java,Android,Html Parsing,我以前从来没有做过这种事情,我很困惑。我花了数小时在谷歌上寻找一些示例代码或任何提示,但每当我尝试使用可用的代码时,总是会出现错误,最终比开始时更加困惑。所以足够的自怜和借口。让我们来回答这个问题:我有一个应用程序“screen scraps”一个网站,现在是谷歌。我得到了它,因此我可以在文本视图中显示html: 我现在的问题是从中获取信息。我想要的只是标题标签(“谷歌”)中的信息。我读过关于HTML解析的内容,但是当我读到关于TagSoup或其他类似内容的信息时,我感到非常困惑。我是否需要它们

我以前从来没有做过这种事情,我很困惑。我花了数小时在谷歌上寻找一些示例代码或任何提示,但每当我尝试使用可用的代码时,总是会出现错误,最终比开始时更加困惑。所以足够的自怜和借口。让我们来回答这个问题:我有一个应用程序“screen scraps”一个网站,现在是谷歌。我得到了它,因此我可以在文本视图中显示html: 我现在的问题是从中获取信息。我想要的只是标题标签(“谷歌”)中的信息。我读过关于HTML解析的内容,但是当我读到关于TagSoup或其他类似内容的信息时,我感到非常困惑。我是否需要它们来做这件事,或者我可以编写一些Java代码来提取title标记并将其转换成字符串,然后显示它。如果我确实需要一个HTML解析器,有人能给我一些示例代码吗。我在他们的网站上找不到。 以下是我目前掌握的代码:

public class MainActivity extends Activity {
String page;
String display;
Document doc;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);        
    new AddStringTask().execute();      
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}    
class AddStringTask extends AsyncTask<Void, String, Void> {    
    @Override
    protected Void doInBackground(Void... unused) {
        DefaultHttpClient httpClient = new DefaultHttpClient();
        HttpGet httpGet = new HttpGet("http://www.google.com");
        ResponseHandler<String> resHandler = new BasicResponseHandler();
        try {
            page = httpClient.execute(httpGet, resHandler);             
        } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;
    }

    @Override
    protected void onProgressUpdate(String... item) {           
    }       
    @Override
    protected void onPostExecute(Void unused) {  
        TextView google = (TextView) findViewById(R.id.google);         
        google.setText(page);       
    }       
}
}
公共类MainActivity扩展活动{
字符串页;
字符串显示;
文件文件;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
新建AddStringTask().execute();
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
getMenuInflater().充气(R.menu.activity\u主菜单);
返回true;
}    
类AddStringTask扩展了AsyncTask{
@凌驾
受保护的空位背景(空位…未使用){
DefaultHttpClient httpClient=新的DefaultHttpClient();
HttpGet HttpGet=新的HttpGet(“http://www.google.com");
ResponseHandler resHandler=new BasicResponseHandler();
试一试{
page=httpClient.execute(httpGet,resHandler);
}捕获(客户端协议例外e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}捕获(IOE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
返回null;
}
@凌驾
受保护的void onProgressUpdate(字符串…项){
}       
@凌驾
受保护的void onPostExecute(void unused){
TextView谷歌=(TextView)findViewById(R.id.google);
google.setText(第页);
}       
}
}
任何示例代码都很好,因为我需要看一些示例。非常感谢您的时间。

应该可以做到:

Document doc = Jsoup.connect("http://google.com/").get();
String docTitle = doc.title();
然后将
docTitle
传递到
google.setText()

你可以找到更多的例子。

应该做到以下几点:

Document doc = Jsoup.connect("http://google.com/").get();
String docTitle = doc.title();
然后将
docTitle
传递到
google.setText()


您可以找到更多示例。

我必须做什么才能将Jsoup添加到代码中。我已经下载了。我需要将其添加为库还是什么?好的。我记下来了。接下来,我应该将您的代码片段放在我的代码中的什么位置?它将替换doInBackground方法中的所有代码。我恭敬地建议您在进一步学习之前先温习一下java技能。我知道。我现在明白了。谢谢你的帮助!让我们看看我需要做什么才能将Jsoup添加到我的代码中。我已经下载了。我需要将其添加为库还是什么?好的。我记下来了。接下来,我应该将您的代码片段放在我的代码中的什么位置?它将替换doInBackground方法中的所有代码。我恭敬地建议您在进一步学习之前先温习一下java技能。我知道。我现在明白了。谢谢你的帮助!让我们