دهکده بزرگ برنامه نویسی

گرفتن سورس کد یک صفحه وب در جاوا

جاوا در زمینه وب بسیار قوی عمل می کند و حتی شما می توانید با استفاده از جاوا به هک کردن نیز بپردازید . اما در این مقاله موضوع گرفتن سورس کد یک صفحه وب از اینترنت است. این سورس کد شامل تمامی کد های html ، css و حتی javascript می باشد. همانطور که می دانید ، می توانید سورس کد یک صفحه وب را در مرورگر خود با راست کلیک کردن بر روی صفحه و انتخاب گزینه View page source مشاهده کنید:

گرفتن سورس کد یک صفحه وب در جاوا

تصویر بالا ، نمایش بخشی از سورس کد همین وبسایت در مرورگر opera بود. ما قصد داریم در این مقاله تمامی این سورس کد را در قالب یک سند متنی بوسیله جاوا از اینترنت دریافت کنیم.

روش های گوناگونی در این زمینه وجود دارد که ما قابل فهم ترین و عملیاتی ترین آن ها را می گوییم.


1     public Boolean get_source(String sURL) {

2     try {

3     

4     URL url = new URL(sURL);

5     

6     BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));

7     BufferedWriter writer = new BufferedWriter(new FileWriter("data" + File.separator + "source_sites" + File.separator +site_source.txt));

8     String line;

9     writer.write("/**source code***/\n\n");

10     while ((line = reader.readLine()) != null) {

11     // System.out.println(line);

12     writer.append(line + '\n');

13     }

14     writer.append("\n\n/**the end**/");

15     reader.close();

16     writer.close();

17     return true;

18     

19     } catch (Exception ex) {

20     System.out.println("creched:" + sURL);

21     ex.printStackTrace();

22     return false;

23     }

24     }

الگوریتم بالا ، بخشی از یک پروژه بوده و بنابراین درستی آن به اثبات رسیده ، اما می خواهیم توضیح مختصری در مورد کد های بالا بدهیم.

ابتدا تابعی از نوع بازگشتی تعریف کردیم که تنها یک ورودی دارد و آن هم یک متغیر از نوع رشته ای که همان آدرس صفحه وبی است که می خواهیم سورس کد آن را دانلود کنیم.

در مرحله بعد ، متغیری از نوع URL تغریف کرده و آدرس صفحه وب خود را به عنوان ورودی به آن می دهیم.(دقت کنید که آدرس شما باید استاندارد باشد. به طور مثال ، آدرس https://www.google.com/ استاندارد است ، یعنی دارای http یا https می باشد. شما می توانید آدرس صفحه وب مورد نظر خود را از آدرس بار مرورگر خود کپی کنید.)

سپس مانند خواندن از روی یک فایل ، متغیری از نوع BufferedReader تعریف می کنیم . در این حالت به جای دادن آدرس یک فایل در کامپیوتر خودمان ، باید آدرس یک فایل موجود در اینترنت را بدهیم.(دقیقا کاری که مرورگر انجام می دهد.هم می تواند فایل های اچ تی ام ال محلی را باز کند و هم فایل های موجود در اینترنت)

در این مثال ، ما مستقیما سورس کد را در یک فایل متنی می ریزیم و ذخیره می کنیم. بنابراین این بار متغیری از نوع BufferedWriter تعریف می کنیم و مسیری را به آن می دهیم.(باید توجه کنید که مسیر باید از قبل وجود داشته باشد.)

سپس برای سرعت در انجام کار ، خط به خط از سورس کد موجود در اینترنت می خوانیم و در فایل محلی خودمان ذخیره می کنیم.(یادتان باشد ، اگر بخواهید به صورت یکجا تمام فایل سورس کد را در یک متغیر بریزید ، دوباره متغیر را در یک فایل دیگر ذخیره کنید ، سرعت برنامه به شدت کاهش پیدا می کند و حتی در نمونه های بزرگ ممکن است ، برنامه هنگ کند.)

و اما در آخر ، گفتیم که تابع از نوع بازگشتی تعریف می کنیم ، به این علت که در صورت بروز هرگونه مشکلی در ارسال یا دریافت سورس کد ، تابع یک مقدار false را برمی گرداند ، به معنای شکست در عملیات و اگر عملیات با موفقیت انجام شد ، مقدار true برگردانده می شود.

کلید واژه ها :سورس کدکار با اینترنت در جاواجاواBufferedReaderBufferedWriterتابع بازگشتی
نوشته شده توسط : amindelavar  |  ارسال شده در تاریخ : 2017/3/17   |  تعداد بازدید کنندگان :193
ارسال نظر شما  (شما ابتدا باید در سایت ثبت نام کنید تا بتوانید نظر دهید.)

آیا این مقاله برای شما مفید بود؟    بله    خیر

اگر وقت بیشتری داری ، می تونی نظرت رو به طور کامل تری در زیر توضیح دهی :

جعبه جستجو
مقاله های اخیر
مقاله های پر بیننده
آمار سایت

 تعداد تمامی مقالات موجود : 16

 تعداد اعضای سایت : 3

 آخرین بروز رسانی سایت : 6 ماه پیش

 بازدید کنندگان امروز (آی پی یکتا) : 8

 بازدید کنندگان دیروز (آی پی یکتا) : 7

 بازدید کنندگان کل (آی پی یکتا) : 3686