مقدمة:
اختفت الموجة الأولى من الإنترنت الآن. مع العصر القادم من إنترنت الأشياء على أساس الآلاف من البيانات ، أصبحت البيانات واحدة من الموارد الاستراتيجية المهمة للمؤسسات. استنادًا إلى تقنية تزحف البيانات ، تقدم هذه المقالة أدوات الزحف المتعلقة بـ JAVA وتوصيل رمز المصدر التجريبي للأصدقاء المهتمين لاختبارهم!
1) يأتي JDK مع اتصال HTTP للحصول على صفحة أو JSON
2) يأتي JDK مع اتصال عنوان URL الخاص به للحصول على الصفحة أو JSON
3) httpclient الحصول على أداة ، الحصول على الصفحة أو json
4) أداة Commons-Io ، Get Page أو JSON
5) أداة JSOUP (تستخدم عادةً في تحليل حقل HTML) ، الحصول على صفحات ، تنسيقات الإرجاع بدون JSON】
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
رمز كامل:
package com.yeezhao.common.http ؛ import java.io.bufferedreader ؛ import java.io.inputstream ؛ import java.io.inputstreamreader ؛ import java.net.httpurlconnection ؛ import java.net.rl ؛ org.apache.commons.httpclient.httpmethod ؛ import org.apache.commons.httpclient.methods.getmethod ؛ import org.apache.commons.io.ioutils ؛ import org.jsoup.jsoup ؛ httpfetchutil { / ** * احصل على رمز حالة الوصول * param request * return * @throws استثناء * / static int int intresponsecode (طلب السلسلة) يلقي استثناء {url url = new url (request) ؛ httpurlConnection conn = (httpurlConnection) url.openconnection () ؛ return conn.getResPonsecode () ؛ } / ** * 1) يأتي JDK مع اتصال http للحصول على الصفحة أو json * request * param * param charset * return * @throws استثناء * / سلسلة ثابتة عامة jdkfetch (طلب السلسلة ، سلسلة charset) يلقي استثناء {url url = url new url (request) ؛ httpurlConnection conn = (httpurlConnection) url.openconnection () ؛ // قم بتسخين معلمات المتصفح conn.setRequestProperty ("مستخدم عامل" ، "Mozilla/5.0 (Windows NT 6.1 ؛ WOW64) AppleWebkit/537.36" + "(KHTML ، مثل Gecko) Chrome/45.0.2454.101 Safari/537.36") ؛ if (conn.getResPonsecode () == httpurlConnection.http_ok) {inputStream input = conn.getInputStream () ؛ StringBuffer SB = New StringBuffer () ؛ BufferedReader Reader = جديد BufferEdReader (New InputStreamReader (الإدخال ، charset)) ؛ سلسلة S ؛ بينما ((s = reader.readline ())! = null) {sb.append (s + "/n") ؛ } input.close () ؛ Conn.Disconnect () ؛ إرجاع sb.tostring () ؛ } يعود ""؛ } / ** * 2) يأتي JDK مع اتصال عنوان URL الخاص به للحصول على الصفحة أو json * request * param * param charset * return * @throws استثناء * / urlfetch static static urlfetch (طلب السلسلة ، سلسلة charset) استثناء {url url = url new url (request) ؛ إرجاع ioutils.toString (url.openstream ()) ؛ } / *: httpclient.getParams (). setContentCharset (charset) ؛ httpmethod method = new getMethod (url) ؛ httpclient.executemethod (method) ؛ طريقة الإرجاع. } / ** * 4) أداة Commons-IO ، الحصول على صفحة أو json * param url * param charset * return * @throws استثناء * / سلسلة ثابتة عامة commonsiofetch (url url ، string charset) يلقي استثناء {return ioutils.toString (url new url (url) ، charset) ؛ } / ** * 5) أداة jsoup (عادة ما تستخدم في تحليل حقل HTML) ، الحصول على صفحات ، تنسيق إرجاع غير مونسوري * url url * @RETURN * athrows استثناء * / السلسلة الثابتة العامة jSoupfetch (url url) استثناء {return jsoup.parse (url new url (url) ، 2 * 1000) .HTML () ؛ }}رمز الاختبار:
package com.yeezhao.common.http ؛ استيراد org.junit.after ؛ استيراد org.junit.before ؛ استيراد org.junit.test ؛/*** فئة الاختبار* 3 روابط اختبار:* 1) encyclopedia web page* 2) httpfetchutiltest {String Seeds [] = {"http://baike.baidu.com/view/1.htm"،"http://m.ximalaya.com/tracks/26096131.json"http:// remyapi.yeezhao.com/api/query؟wd=٪E5٪91٪A8٪E6٪98٪9F٪E9٪B0٪E7٪9A٪84٪E7٪94٪B5٪E5٪BD٪B1 "} ؛ السلسلة الثابتة النهائية default_charset = "utf-8" ؛ before public void setup () يلقي استثناء {} @After public void teardown () يلقي الاستثناء {system.out.println ("--- Down ---") ؛ } test public void testgetResponsecode () يلقي الاستثناء {for (String Seed: Seeds) {int reprowEcode = httpfetchutil.getResponsecode (Seed) ؛ system.out.println ("ret ="+responsecode) ؛ }} test public void testjdkfetch () يلقي استثناء {for (String Seed: Seeds) {String Ret = httpfetchutil.jdkfetch (Seed ، default_charset) ؛ System.out.println ("ret ="+ret) ؛ } }Test public void testurlfetch () يلقي الاستثناء {for (String Seed: Seeds) {String ret = httpfetchutil.urlfetch (Seed ، default_charset) ؛ System.out.println ("ret ="+ret) ؛ }} test public void testHttpClientFetch () يلقي استثناء {for (String Seed: Seeds) {String ret = httpfetchutil.httpclientfetch (Seed ، default_charset) ؛ System.out.println ("ret ="+ret) ؛ }} test public void testCommonsiofetch () يلقي استثناء {for (String Seed: Seeds) {String Ret = httpfetchutil.commonsiofetch (البذور ، default_charset) ؛ System.out.println ("ret ="+ret) ؛ }} test public void testjsoupfetch () يلقي الاستثناء {for (String Seed: Seeds) {String ret = httpfetchutil.jsoupfetch (Seed) ؛ System.out.println ("ret ="+ret) ؛ }}}المرفق: تبعيات جرة ذات صلة
... <ERPEMENCY> <GORELID> org.jsoup </rougeid> <STIFACTID> JSOUP </STIFACTID> <الإصدار> 1.7.3 </version> </sependency> <rependency> <roucid> commons-httpclient </rougeid> <stifactid> comm ONS-HTTPCLIENT </suntifactid> <الإصدار> 3.1 </version> </sependency> <sependency> <roupiD> commons-io </rougeid> <StifactId> commons-io </sonfactid> <soph> 2.4 </sperence> </sperence> ...
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.