android - 从android studio中的网站提取文本
问题描述
我有一个网站,它只显示一行文本,我需要在 android studio 中提取文本表单,我更愿意将其作为字符串获取。我该怎么做呢?
诸如此类的东西webView.getTitle()
会起作用,但对于网站的内容来说,有没有这样一种快速的方法来获得这个或者我应该怎么做?
具体信息
我需要获取信息表的网站是:
"<html> <head></head> <body> #4d636f </body> </html> "
从这里我只需要正文中的文本,在这种情况下,颜色作为文本。
解决方案
您可以使用任何 Web Scraper/Crawler API 从网站获取数据。
例如: 适用于 Java 和 Android 的 JSOUP API
更新
解决上述问题的分步指南
- 将 Jsoup 依赖添加到 build.gradle 的应用级别。
实施 'org.jsoup:jsoup:1.11.1'
- 将 Internet 权限添加到 Android Manifest 文件以访问 Internet。
<uses-permission android:name="android.permission.INTERNET" />
- 在您的应用程序中添加按钮和文本视图,以便在单击按钮时从网站获取数据并在文本视图上显示结果。
下面是示例代码:
public class MainActivity extends AppCompatActivity {
private TextView result;
private Button fetch;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
result = (TextView) findViewById(R.id.result);
fetch = (Button) findViewById(R.id.fetch);
fetch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
getBodyText();
}
});
}
private void getBodyText() {
new Thread(new Runnable() {
@Override
public void run() {
final StringBuilder builder = new StringBuilder();
try {
String url="http://www.example.com";//your website url
Document doc = Jsoup.connect(url).get();
Element body = doc.body();
builder.append(body.text());
} catch (Exception e) {
builder.append("Error : ").append(e.getMessage()).append("\n");
}
runOnUiThread(new Runnable() {
@Override
public void run() {
result.setText(builder.toString());
}
});
}
}).start();
}
}
推荐阅读
- python-3.x - 每次调用 Asyncio 代码时都会显示递增的参数数量
- r - 带动态条件的条件累加和
- java - 如何更改 MySQL 会话数据库?
- api - 如何在Vue中使用html传感器api
- python - 随机森林准确率太低
- c - 进程内存的虚拟地址是如何计算的?
- reactjs - 编译android时出现React-native-camera错误
- python-3.x - 从 pandas 列中删除 unicode '\xa0'
- java - 在 javafx 中正确调整 BorderLayout 内的 ScrollPane
- sql - 在 oracle 中将 1 条记录拆分为 4 条记录(将行转为列)