@Override public LinkList<ItemInfo> getItems(int count) { int retry = 0; if (Connect(Res.getBaseAddress())) { parser(); } else { System.out.println(Res.getConFailueMsg()); } while (ItemName.size() < count || retry >= Res.getRetrytimes()) { if (Connect(Res.getFollowingAddress() + pages)) { parser(); pages++; } else retry++; } for (int lp = 0; lp < count; lp++) { ItemInfo aItem = new ItemInfo(); aItem.setItemName(ItemName.get(lp)); aItem.setItemSummery(ItemSummery.get(lp)); aItem.setPostTime(ItemPostTime.get(lp)); aItem.setItemLink(ItemLink.get(lp)); ItemData.add(aItem); } return ItemData; }
private boolean Connect(String Address) { for (int Retry = 0; (doc == null) && (Retry < Res.getRetrytimes()); Retry++) { try { doc = Jsoup.connect(Address).userAgent("Mozilla").timeout(Res.geTimeOut()).get(); } catch (IOException e) { Log.print("FetchCnblogs::Connect", Res.getConRetryMsg() + "第" + (Retry + 1) + "次"); } } if (doc == null) return false; else return true; }
/** get post body and fetch the image links */ @Override public void getContent(ItemInfo item) { Document adoc = null; for (int j = 0; adoc == null && j < Res.getRetrytimes(); j++) { System.out.println("Startting fetching contets of" + item.getItemName()); try { adoc = Jsoup.connect(item.getItemLink()).userAgent("Mozilla").timeout(Res.geTimeOut()).get(); } catch (IOException e) { System.out.println(Res.getConRetryMsg()); } } if (adoc == null) { System.out.println("fetch tips error, adoc is null"); item.setContent(Res.getFileNotExistMsg()); } else { item.setContent(adoc.getElementsByClass("post").html()); } }