开发者社区> 问答> 正文

如何通过Android Studio制作一些图像爬行器

我想创建一个程序,当我键入关键字时,在其中搜索Google并抓取两张图片。我想知道如何从Google获取图像的标签,以及如何通过使用android studio进行编码以将图像保存到android。

我没有完全理解,因为我具有入门阶段的技能。我已经做了很多搜索,而且我知道Google的图片搜索URL是“ https://www.google.com/search?q=keyword&tbm=isch ”。

import android.os.AsyncTask; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.text.method.ScrollingMovementMethod; 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 String htmlPageUrl = "https://www.google.com/search?q=keyword&tbm=isch"; //homepage
private TextView textviewHtmlDocument;
private String htmlContentInStringFormat="";

int cnt=0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    textviewHtmlDocument = (TextView)findViewById(R.id.textView);
    textviewHtmlDocument.setMovementMethod(new ScrollingMovementMethod()); //scroll

    Button htmlTitleButton = (Button)findViewById(R.id.button);
    htmlTitleButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            System.out.println( (cnt+1) +"번째 파싱");
            JsoupAsyncTask jsoupAsyncTask = new JsoupAsyncTask();
            jsoupAsyncTask.execute();
            cnt++;
        }
    });
}

private class JsoupAsyncTask extends AsyncTask<Void, Void, Void> {

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
    }

    @Override
    protected Void doInBackground(Void... params) {
        try {

            Document doc = Jsoup.connect(htmlPageUrl).get();


            //test
            Elements titles= doc.select("div.news-con h1.tit-news");

            System.out.println("-------------------------------------------------------------");
            for(Element e: titles){
                System.out.println("title: " + e.text());
                htmlContentInStringFormat += e.text().trim() + "\n";
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

    @Override
    protected void onPostExecute(Void result) {
        textviewHtmlDocument.setText(htmlContentInStringFormat);
    }
}

} 这不是我的代码,我正在学习其他人的代码来学习。我有一个问题,我不知道如何修改才能满足我的需求。

展开
收起
被纵养的懒猫 2019-10-08 17:17:39 419 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载