البرمجة

استخراج روابط Google Alerts باستخدام Java

باستخدام لغة البرمجة جافا، يمكنك الحصول على الرابط النهائي لموقع ويب من الرابط الذي تم إنشاؤه من خلال Google Alerts. يتطلب ذلك استخدام مكتبة java.net لإرسال طلب HTTP ومعالجة الاستجابة. فيما يلي مثال على كيفية تحقيق ذلك:

java
import java.io.IOException; import java.net.HttpURLConnection; import java.net.URL; public class ExtractFinalUrl { public static void main(String[] args) { String googleAlertsUrl = "https://www.google.com/url?rct=j&sa=t&url=http://naija247news.com/2016/03/nigerian-bond-yields-rise-after-cbns-interest-rate-hike-aimed-at-luring-investors/&ct=ga&cd=CAIyGjA3ZmJiYzk0ZDM0N2U2MjU6Y29tOmVuOlVT&usg=AFQjCNGs7HsYSodEUnECfdAatG6KgY18DA"; try { String finalUrl = getFinalUrl(googleAlertsUrl); System.out.println("Final URL: " + finalUrl); } catch (IOException e) { System.err.println("An error occurred: " + e.getMessage()); } } private static String getFinalUrl(String initialUrl) throws IOException { URL url = new URL(initialUrl); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setInstanceFollowRedirects(false); connection.connect(); int responseCode = connection.getResponseCode(); if (responseCode >= 300 && responseCode < 400) { // If there is a redirect, get the new location String newLocation = connection.getHeaderField("Location"); if (newLocation != null && !newLocation.isEmpty()) { return newLocation; } } // If no redirect, return the original URL return initialUrl; } }

يقوم الكود بفتح اتصال HTTP بالرابط الأصلي وفحص رمز الاستجابة. إذا كان رمز الاستجابة يشير إلى إعادة توجيه (بين 300 و 399)، يتم استخراج الرابط الجديد من رأس الاستجابة ويتم إرجاعه. إذا لم يكن هناك إعادة توجيه، يتم إرجاع الرابط الأصلي.

المزيد من المعلومات

في هذا السياق، يعتبر الرمز الذي يبدأ ب “https://www.google.com/url” هو عبارة عن توجيه تقوم به خدمة Google للإشعارات (Google Alerts) عندما يتم النقر على الرابط. الرابط النهائي الذي تبحث عنه يمكن العثور عليه في معامل “url=” في نهاية الرابط.

في المثال الذي قدمته في الكود البرمجي، يتم استخدام مكتبة java.net لإرسال طلب HTTP إلى الرابط الأصلي، ويتم فحص رمز الاستجابة. إذا كان هناك إعادة توجيه (رمز الاستجابة بين 300 و 399)، يتم استخراج الرابط الجديد من رأس الاستجابة باستخدام connection.getHeaderField("Location"). إذا كان هناك أي تغيير في الرابط النهائي، سيتم طباعته في الإخراج.

من الجدير بالذكر أن هذا الكود يتعامل بشكل أساسي مع حالة إعادة التوجيه في الرمز الاستجابة، ولا يضمن التعامل مع جميع الحالات المحتملة. إذا كان هناك تشفير آخر أو تقنيات توجيه إضافية، قد تحتاج إلى تحسين الكود ليتماشى معها.

زر الذهاب إلى الأعلى