я хочу использовать jsoup, чтобы получать новости в моем приложении для Android - PullRequest
0 голосов
/ 30 мая 2019

У меня проблема с тем, что я хочу использовать jsoup для получения новостей, но всегда терплю неудачу.
это новостной сайт.
https://www3.nhk.or.jp/news/

это моя фотография.который я обведу, я хотел данные.
https://drive.google.com/open?id=1KJAyOSdHO8APPD6_A9MjxkoFjekcQLXt

но независимо от того, что я делаю.он всегда получает неправильные данные или пустой.
это моя программа.

public class News extends AppCompatActivity {
Button ok;
private static final String url ="https://www3.nhk.or.jp/news/";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.news);
ok=(Button)findViewById(R.id.ok);
ok.setOnClickListener(okbtn);
}
private Button.OnClickListener okbtn=new Button.OnClickListener(){
public void onClick(View v){
try{
Connection.Response response = Jsoup.connect(url).execute();
String body = response.body();
Document data = Jsoup.parse(body);//visible-phone print_hide
Elements country=data.select("main");
Elements main=data.select("div[id=module module--news-main index-main]");

for(Element e1: country)
{
mytoast(e1+"");
}
}
catch(Exception ex){ex.printStackTrace() ;}
}
};
private void mytoast(String str)
{
Toast toast=Toast.makeText(this, str, Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
}
}

пожалуйста, помогите мне спасибо

1 Ответ

1 голос
/ 30 мая 2019

Вы можете сначала попытаться увидеть его HTML.

Если вы не видите его, вы не используете jsoup .

В комментарии есть небольшая подсказка:

こ の ペ ー ジ で は JavaScript を 使用 し て い ま す

=> Это сгенерировано JavaScript

Если он сгенерирован, его нельзя найти в Jsoup.

В этом случае я буду использовать инструмент Chrome для мониторинга вкладки XHR

GUIDE

Просмотрите каждый запрос XHR и найдите наиболее возможный

.

например, я вижу это

https://www3.nhk.or.jp/news/json16/syuyo.json?_=1559183885640

Часть ответа:

"id":"193411",
"title":"三菱UFJ銀行 新規口座は原則デジタル通帳に",
"pubDate":"Thu, 30 May 2019 04:03:11 +0900",
"cate":"5",
...
"id":"193437",
"title":"エアレース世界選手権 今季限りで終了",
"pubDate":"Thu, 30 May 2019 09:40:37 +0900",

Так что это именно то, что вы хотите. По другой ссылке!

Вам не нужен Jsoup, просто зайдите по ссылке

https://www3.nhk.or.jp/news/json16/syuyo.json?_=1559183885640

И я думаю, что числа выглядят как UnixTime,

Итак, я проверяю текущее время: 1559184830782, вот и все.

Просто используйте эту ссылку в качестве API и time в качестве параметра.

...