使用jsoup和android从网站上删除链接

使用jsoup和android从网站上删除链接,android,jsoup,screen-scraping,Android,Jsoup,Screen Scraping,我正在尝试做一个应用程序,将从一个网站的景观链接。作为一个起点,我只想把它们作为一个系统消息。当我运行程序时,我根本看不到任何消息。怎么了?请帮忙 import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import android.app.Activity; import java.io.*; pu

我正在尝试做一个应用程序,将从一个网站的景观链接。作为一个起点,我只想把它们作为一个系统消息。当我运行程序时,我根本看不到任何消息。怎么了?请帮忙

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import android.app.Activity;

import java.io.*;


public class HTMLLinkExtractor extends Activity {


        public static void main() {
            scrapeLink();
        }




            public static void scrapeLink(){
                File input = new File("/tmp/input.html");
                Document doc = null;
                try {
                    doc = Jsoup.parse(input, "UTF-8", "http://www.homedepot.com");
                    Elements link = doc.select("a[href]");
                    String stringLink = null;

                            for(int i=0; i<link.size(); i++){

                                stringLink = link.toString();
                                System.out.println(stringLink);
                            }

                    System.out.println(link);
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                Element links = doc.select("a[href]").first();
                System.out.println(links);
                }
}
import org.jsoup.jsoup;
导入org.jsoup.nodes.Document;
导入org.jsoup.nodes.Element;
导入org.jsoup.select.Elements;
导入android.app.Activity;
导入java.io.*;
公共类HTMLLinkExtractor扩展活动{
公共静态void main(){
刮链();
}
公共静态链接(){
文件输入=新文件(“/tmp/input.html”);
单据单据=空;
试一试{
doc=Jsoup.parse(输入,“UTF-8”http://www.homedepot.com");
Elements link=doc.select(“a[href]”);
字符串stringLink=null;

对于(int i=0;i由于您没有实际包含html数据的
input.html
(baseUri用于解析该html中的相对链接),您可以修改代码以直接连接到网站并直接获取数据:

试试看

publicstaticvoidmain(字符串…参数){
刮链();
}
公共静态链接(){
//文件输入=新文件(“/tmp/input.html”);
单据单据=空;
试一试{
doc=Jsoup.connect(“http://www.homedepot.com).get();
Elements link=doc.select(“a[href]”);
字符串stringLink=null;
对于(int i=0;i
产出

<a href="http://www.homedepot.ca/?eid=us-language-selection-en&amp;utm_source=us-language-selection-en"><font color="#ED8A3D"><b>English</b></font></a>
<a href="http://www.homedepot.ca/accueil?eid=us-language-selection-fr&amp;utm_source=us-language-selection-fr"><font color="#ED8A3D"><b>Francais</b></font></a>
...

...

注意,我将主程序作为Java应用程序运行,您可以将其更改为在ADT中运行。

android异步任务的答案

class scrapeLinks extends AsyncTask<Void,Void,Void> {

       @Override
       protected void onPreExecute() {
           super.onPreExecute();
           pDialog = new ProgressDialog(MainActivity.this);
           pDialog.setMessage("getting links");
           pDialog.setIndeterminate(false);
           pDialog.setCancelable(true);
           pDialog.show();
       }


    @Override
    protected Void doInBackground(Void... params) {
         Document doc = null;
            try {
                doc = Jsoup.connect("http://www.homedepot.com").get();
                Elements link = doc.select("a[href]");
                String stringLink = null;

                for (int i = 0; i < link.size(); i++) {

                    stringLink = link.toString();
                    System.out.println(stringLink);
                }

                System.out.println(link);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            Element links = doc.select("a[href]").first();
            System.out.println(links);

            return null;
        }
         }

    protected void onPostExecute(Void...params){
        pDialog.dismiss();
    }

       }
类任务{
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
pDialog=新建进度对话框(MainActivity.this);
setMessage(“获取链接”);
pDialog.setUndeterminate(假);
pDialog.setCancelable(真);
pDialog.show();
}
@凌驾
受保护的Void doInBackground(Void…参数){
单据单据=空;
试一试{
doc=Jsoup.connect(“http://www.homedepot.com).get();
Elements link=doc.select(“a[href]”);
字符串stringLink=null;
对于(int i=0;i
your input.html包含什么内容?我没有在jsoup网站上找到的代码中的一部分是它创建的文件。如果是这种情况,您可以直接连接到url,回答如下此操作在严格模式下进行谢谢我将发布如何使用adt完成
class scrapeLinks extends AsyncTask<Void,Void,Void> {

       @Override
       protected void onPreExecute() {
           super.onPreExecute();
           pDialog = new ProgressDialog(MainActivity.this);
           pDialog.setMessage("getting links");
           pDialog.setIndeterminate(false);
           pDialog.setCancelable(true);
           pDialog.show();
       }


    @Override
    protected Void doInBackground(Void... params) {
         Document doc = null;
            try {
                doc = Jsoup.connect("http://www.homedepot.com").get();
                Elements link = doc.select("a[href]");
                String stringLink = null;

                for (int i = 0; i < link.size(); i++) {

                    stringLink = link.toString();
                    System.out.println(stringLink);
                }

                System.out.println(link);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            Element links = doc.select("a[href]").first();
            System.out.println(links);

            return null;
        }
         }

    protected void onPostExecute(Void...params){
        pDialog.dismiss();
    }

       }