نسخة الكود كما يلي:
حزمة العمل
استيراد java.io.bufferedreader ؛
استيراد java.io.ioException ؛
استيراد java.io.inputstream ؛
استيراد java.io.inputstreamreader ؛
استيراد java.util.regex.matcher ؛
استيراد java.util.regex.pattern ؛
استيراد org.apache.commons.httpclient.defaulthttpmethodretryhandler ؛
استيراد org.apache.commons.httpclient.httpclient ؛
استيراد org.apache.commons.httpclient.httpexception ؛
استيراد org.apache.commons.httpclient.httpstatus ؛
استيراد org.apache.commons.httpclient.methods.getMethod ؛
استيراد org.apache.commons.httpclient.params.httpmethodparams ؛
الطبقة العامة chuanboyi {
الفراغ الثابت العام الرئيسي (سلسلة [] args) {
// TODO METHOTION METTOD COBS
StringBuffer html = new StringBuffer () ؛
httpclient httppclient = new httpclient () ؛
// إنشاء مثيل طريقة الحصول على
getMethod getMethod = new getMethod ("// www.vevb.com") ؛
// استخدم سياسة الاسترداد الافتراضية التي يوفرها النظام
getMethod.getParams (). setParameter (httpmethodparams.retry_handler ، defaulthttpmethodretryhandler ()) ؛
يحاول{
// تنفيذ طريقة الحصول
int statusCode = httpclient.executemethod (getMethod) ؛
if (statusCode! = httpstatus.sc_ok) {
System.out.println ("الطريقة خاطئة" + getMethod.getStatusLine ()) ؛
}
inputStream ResponseBody = getMethod.getResponseBondAssTream () ؛
BufferedReader Reader = جديد BufferEdReader (New InputStreamReader (ResponseBody ، "UTF-8")) ؛
خط السلسلة = reader.ReadLine () ؛
بينما (الخط! = فارغ) {
html.append (line) .Append ("/n") ؛
line = reader.ReadLine () ؛
}
reader.close () ؛
// التعبير العادي
String regex = "<form name =/" compareform/"[// s // s]+> [// s // s]+</form>.*<script.*>" ؛
regexa string = "(؟ <= <li>) [// s // s]+؟ (؟ = </li>)" ؛
نمط نمط = pattern.compile (regex) ؛
matcher m = pattern.matcher (html) ؛
StringBuffer str = new StringBuffer () ؛
int i = 0 ؛
بينما (m.find ()) {
str.append (M.Group ()) ؛
}
pattern = pattern.compile (regexa) ؛
m = pattern.matcher (str) ؛
بينما (m.find ()) {
attrs (m.group ()) ؛
i ++ ؛
}
System.out.println ("هناك إجماليات"+i+"البيانات!") ؛
} catch (httpexception e) {
// تودو: التعامل مع الاستثناء
System.out.println ("يرجى التحقق من عنوان HTTP المقدم!") ؛
E.PrintStackTrace () ؛
} catch (ioException e) {
// تودو: التعامل مع الاستثناء
System.out.println ("الخط خاطئ!") ؛
E.PrintStackTrace () ؛
} أخيراً{
getMethod.releaseconnection () ؛ // حرر الرابط
}
}
attrs static static void (سلسلة str) {
// احصل على regex of url
regexurl string = "[az]+-[0-9]+//. html" ؛
// احصل على التعبير العادي عن الاسم
regexname string = "(؟ <= title =/") [[// w-// s] [^x00-xff]]+(؟ =/")" ؛
// احصل على التعبير المنتظم عن الصورة
regexpicture string = "الصور.*//. jpg" ؛
نمط patternurl = pattern.compile (regexurl) ؛
نمط patternname = pattern.compile (regexName) ؛
نمط patternpicture = pattern.compile (regexpicture) ؛
matcher murl = patternurl.matcher (str) ؛
matcher mname = patternname.matcher (str) ؛
matcher mpicture = patternpicture.matcher (str) ؛
if (mname.find ()) {
System.out.println ("name:"+mname.group ()) ؛
}
if (murl.find ()) {
System.out.println ("Link:"+murl.group ()) ؛
}
if (mpicture.find ()) {
system.out.println ("picture:"+mpicture.group ()) ؛
}
}
}