刮网站的要点

时间:2017-09-03 14:11:22

标签: android tags scrape

编码非常新(昨天)

我被赋予了为朋友创建Android应用程序的任务,从他的网站提取数据并将其插入快速应用程序而不是他和他的同事每次想要查看它时都必须打开浏览器。

由于原因,我不能分享网站地址。 网站上的数据位于项目符号列表中。

我一直在阅读一些教程并观看一些视频,我可以使用WebView拉起网站,现在我已经开始阅读JSoup了。我已经从一些教程中复制了几行代码,现在我可以将原始/ html /纯文本拉到网站,但我想删除不必要的数据,只需要在项目符号旁边放置文本。

以下是来自MainActivity.java的代码

如前所述,我对此非常陌生,没有背景经验。

我想知道的是,如果我可以在页面源上的两个标签之间删除文本,例如“div class =”scheduler“SCRAPE THE TEXT HERE”ul id =“myUL”

这将包含我在上述标签中需要的所有信息。

谢谢。

package spcentral.jsouptut;

        import android.os.Bundle;
        import android.support.v7.app.AppCompatActivity;
        import android.view.View;
        import android.widget.Button;
        import android.widget.TextView;

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

        import java.io.IOException;

public class MainActivity extends AppCompatActivity {

    private Button getBtn;
    private TextView result;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        result = (TextView) findViewById(R.id.result);
        getBtn = (Button) findViewById(R.id.getBtn);
        getBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                getWebsite();
            }
        });
    }

    private void getWebsite() {
        new Thread(new Runnable() {
            @Override
            public void run() {
                final StringBuilder builder = new StringBuilder();

                try {
                    Document doc = Jsoup.connect("linkremoved").get();
                    String text = doc.text();
                    Elements links = doc.select("a[href]");

                                        builder.append(text).append("n");

                    for (Element link : links) {
                        builder.append("n").append("Link : ").append(link.attr("href"))
                                .append("n").append("Text : ").append(link.text());
                    }
                } catch (IOException e) {
                    builder.append("Error : ").append(e.getMessage()).append("n");
                }

                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        result.setText(builder.toString());
                    }
                });
            }
        }).start();
    }

0 个答案:

没有答案
相关问题