با سلام
من یه سایت دارم که دارای یک تگ <form> هست که نمیشه اونو به json ترجمه کرد (اگه میشه راهکاری بدید خخ)
اما من تصمیم گرفتم اطلاعات رو از صفحه html بگیرم و id form و کد مخصوص submit کردن رو از صفحه بگیرم و بعد با روش post ارسالشون کنم به همون صفحه .
حالا راهکاری برام سراغ دارید بشه html رو parse کرد ؟ البته به این سایت هم برخوردم ولی مستندات خوبی نداشت
https://medium.com/@ssaurel/learn-to-par...9b0da0096f )
بازم ممنون
(۱۳۹۶/۰۷/۲۳, ۰۱:۱۲ ب.ظ)mahdigh نوشته: [ -> ]با سلام
من یه سایت دارم که دارای یک تگ <form> هست که نمیشه اونو به json ترجمه کرد (اگه میشه راهکاری بدید خخ)
اما من تصمیم گرفتم اطلاعات رو از صفحه html بگیرم و id form و کد مخصوص submit کردن رو از صفحه بگیرم و بعد با روش post ارسالشون کنم به همون صفحه .
حالا راهکاری برام سراغ دارید بشه html رو parse کرد ؟ البته به این سایت هم برخوردم ولی مستندات خوبی نداشت https://medium.com/@ssaurel/learn-to-par...9b0da0096f )
بازم ممنون
ببينيد عملا HTML مثل داده هاي Json و XML قابل پارس شدن نيستند
شما يا بايد از webview استفاده كنيد ك راه بهينه اي نيس اما كار راه بندازه
يا اينكه صفحه اچتملتون رو بصورت كد دريافت كنيد و با كد نويسي قسمت هايي از اون رو ك خارج كنيد و در رشته يا آرايه هايي ذخيره كنيد (يني تگ html رو تو متغيير ذخيره كنيد)
و قطعا راه هاي ديگه هم وجود داره اگه سرچ كنيد
[
sobhansh2011@yahoo.com]
من که توی سات های ایرانی راه حل درست و خوبی رو پیدا نکردم.
این کد لینکهای درون html رو میکشه بیرون. از قسمت a[href] می تونین تگ دلخواه رو مثل css انتخاب کنید:
کد:
private void getWebsite() {
new Thread(new Runnable() {
@Override
public void run() {
final StringBuilder builder = new StringBuilder();
final String url="";
try {
Document doc = Jsoup.connect(url).get();
String title = doc.title();
Elements links = doc.select("a[href]");
builder.append(url).append("\n");
for (Element link : links) {
String lin = URLDecoder.decode(link.attr("href"), "UTF-8");
String lon = String.valueOf(lin.charAt(0));
Boolean f5 = !(lon.equals("/"));
Boolean f6 = !(lon.equals("#"));
if ( f5 && f6) {
builder.append("\n").append("Link : ").append(URLDecoder.decode(link.text(), "UTF-8"))
.append("\n").append("Text : ").append(URLDecoder.decode(link.attr("href"), "UTF-8"));
mylist.add(URLDecoder.decode(link.text(), "UTF-8").toString());
mylisturl.add(URLDecoder.decode(link.attr("href"), "UTF-8"));
//
}
}
} catch (IOException e) {
builder.append("Error : ").append(e.getMessage()).append("\n");
}
runOnUiThread(new Runnable() {
@Override
public void run() {
first = true;
// Toast.makeText(MainActivity.this, builder.toString(), Toast.LENGTH_SHORT).show();
if(!isreg) {mahdood=mahdood-1;
if(mahdood<0){{mahdood=0;}
}}
wirtemahdod(mahdood);
if (mylist.size() > 0) {
for (int i = 0; i < mylist.size(); i++) {
String furl = mylisturl.get(i);
String ftitle = mylist.get(i);
// Toast.makeText(MainActivity.this, ftitle, Toast.LENGTH_SHORT).show();
if (filter(ftitle).equals("") || filter(ftitle).equals(" ")){
ftitle=st.getText().toString();
}
if(!first) {
getmp3(furl, ftitle, i);
}
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
} else {
Toast.makeText(MainActivity.this, "جستجو ناموفق بود.", Toast.LENGTH_SHORT).show();
pb.setVisibility(View.INVISIBLE);
}
}
});
}
}).start();
}