当前位置: 首页 > 面试题库 >

从网页获取文本到字符串

文德曜
2023-03-14
问题内容

我是Android的新手,我想将整个文本从网页转换为字符串。我发现了很多类似的问题,但是正如我所说的,我是Android的新手,我不知道如何在我的应用程序中使用它们。我遇到了错误。我只有一种方法设法使其起作用,它使用WebView和JavaScript,并且运行缓慢。有人可以告诉我其他方法或加快WebView的速度,因为我根本不使用它来查看内容。顺便说一句,我添加了以下代码来加速WebView

webView.getSettings().setJavaScriptEnabled(true); 
    webView.getSettings().setBlockNetworkImage(true);
    webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(false);
    webView.getSettings().setPluginsEnabled(false);
    webView.getSettings().setSupportMultipleWindows(false);
    webView.getSettings().setSupportZoom(false);
    webView.getSettings().setSavePassword(false);
    webView.setVerticalScrollBarEnabled(false);
    webView.setHorizontalScrollBarEnabled(false);
    webView.getSettings().setAppCacheEnabled(false);
    webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);

并且,如果您知道其他比使用WebView更好,更快的解决方案,请给我提供主要活动的全部源代码,或者解释一下我应该在哪里编写它,以便不会出错。


问题答案:

用这个:

public class ReadWebpageAsyncTask extends Activity {
    private TextView textView;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        textView = (TextView) findViewById(R.id.TextView01);
    }

    private class DownloadWebPageTask extends AsyncTask<String, Void, String> {
        @Override
        protected String doInBackground(String... urls) {
            String response = "";
            for (String url : urls) {
                DefaultHttpClient client = new DefaultHttpClient();
                HttpGet httpGet = new HttpGet(url);
                try {
                    HttpResponse execute = client.execute(httpGet);
                    InputStream content = execute.getEntity().getContent();

                    BufferedReader buffer = new BufferedReader(
                            new InputStreamReader(content));
                    String s = "";
                    while ((s = buffer.readLine()) != null) {
                        response += s;
                    }

                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            return response;
        }

        @Override
        protected void onPostExecute(String result) {
            textView.setText(Html.fromHtml(result));
        }
    }

    public void readWebpage(View view) {
        DownloadWebPageTask task = new DownloadWebPageTask();
        task.execute(new String[] { "http://www.google.com" });

    }
}

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >

    <Button android:layout_height="wrap_content" android:layout_width="match_parent" android:id="@+id/readWebpage" android:onClick="readWebpage" android:text="Load Webpage"></Button>
    <TextView android:id="@+id/TextView01" android:layout_width="match_parent" android:layout_height="match_parent" android:text="Example Text"></TextView>
</LinearLayout>


 类似资料:
  • 我有一个字符串,它包含字节数组的元素,比如“[B@42B19E58”,我必须将它转换回字节数组。 有人能给我一个这样做的方法吗? 在这里,我不必将一个字符串转换为字节数组。我已经有字节数组元素在字符串中,我只需要把它们放回数组。

  • 问题内容: 我整天一直在搜寻,找不到答案,因此如果已经回答了,请提前道歉。 我正在尝试从大量不同的网站中获取所有可见的文本。原因是我要处理文本以最终对网站进行分类。 经过几天的研究,我认为硒是我最好的机会。我发现一种使用Selenium来捕获所有文本的方法,不幸的是同一文本被多次捕获: 该内部条件环路消除同一文本多次读取的问题的尝试-但是,它没有,只是作为计划在某些网页的工作。(这也使脚本慢很多)

  • 问题内容: 我需要这个shell脚本一些帮助。我有一个变量,代表一个IP / TCP标头。我需要按所选标题过滤流量捕获。 tcpdump命令的结果如下所示 我需要IP地址源和IP地址目标,在示例中,输出结果必须为 10.0.0.131.58363 > 239.255.255.250.1900 问题答案: 尝试直接在over中执行此操作: 这是坚如磐石的;)

  • 我想在警报对话框中显示字符串/字符串中的文本。xml,并根据应用程序内的结果,添加一个附加文本。 一串xml 我的警报对话框 我的getText()方法 输出: 你好,世界 21283932323 我是从文本的方法 我也是那里发来的短信 __ 这里怎么了?为什么我得到的是一个数字而不是字符串中的文本。xml?

  • 我有一个Excel工作表,其中一栏填充了专利号。我需要提取每个相应专利的标题,并将其放在专利号旁边的单元格中。因此,代码应执行以下操作: 访问espacenet.com并打开需要名称的专利号。 获取标题。 将其放在所需单元格的Excel工作表中。 这是一个完美适用于第一个专利号的代码,但在这之后会立即出现错误。错误显示:“运行时错误'-2147417848(80010108)': 自动化错误调用的

  • 可能重复: Access-Control-Allow-Origin不允许Origin 我想从网页访问元素。 但我不能这样做,得到一个错误: XMLHttpRequest无法加载http://en.wikipedia.org/wiki/special:search?search=&go=go。Access-Control-Allog-Origin不允许起源“我的本地主机”。 当我尝试用另一个本地页面