joermd commited on
Commit
e84775b
·
verified ·
1 Parent(s): b247a30

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +55 -39
app.py CHANGED
@@ -1,50 +1,66 @@
1
- import gradio as gr
2
  import requests
 
 
 
3
 
4
- # Function to analyze the website
5
- def analyze_website(url):
6
  try:
7
- # Ensure the URL has a protocol
8
- if not url.startswith("http://") and not url.startswith("https://"):
9
- url = "https://" + url
10
-
11
- # Website performance analysis
12
  response = requests.get(url, timeout=5)
13
- response_time = response.elapsed.total_seconds()
14
- status_code = response.status_code
15
- content_size = len(response.content)
16
- performance = f"- وقت الاستجابة: {response_time:.2f} ثانية.\n- حالة الموقع: {status_code}\n- حجم المحتوى: {content_size} بايت."
17
-
18
- # Traffic analysis
19
- traffic_analysis = "- تحليل الترافيك:\nالمعلومات الخاصة بالترافيك غير متوفرة حاليًا، يرجى التحقق يدويًا."
20
 
21
- # Security analysis
22
- security_analysis = "- تحليل الأمان:\nلا يمكن عرض التفاصيل هنا، يرجى التأكد يدويًا من شهادة الأمان ومراجعة الأمان العام."
 
 
 
 
 
 
 
 
 
23
 
24
- # User experience analysis
25
- page_title = response.text.split("<title>")[1].split("</title>")[0] if "<title>" in response.text else "غير متوفر"
26
- link_count = response.text.count("<a href=")
27
- user_experience = f"- عنوان الصفحة: {page_title}\n- عدد الروابط الداخلية: {link_count}\n- وصف الصفحة غير متوفر."
 
 
28
 
29
- # Return results in Arabic
30
- return performance, traffic_analysis, security_analysis, user_experience
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31
  except Exception as e:
32
- error_message = f"حدث خطأ أثناء تحليل الموقع: {str(e)}"
33
- return error_message, error_message, error_message, error_message
34
 
35
- # Gradio interface
36
- interface = gr.Interface(
37
- fn=analyze_website, # The function used
38
- inputs=gr.Textbox(label="رابط الموقع", placeholder="أدخل رابط الموقع (مثل: example.com)"), # Input field
39
  outputs=[
40
- gr.Textbox(label="تحليل الأداء"),
41
- gr.Textbox(label="تحليل الترافيك"),
42
- gr.Textbox(label="تحليل الأمان"),
43
- gr.Textbox(label="تحليل تجربة المستخدم")
44
  ],
45
- title="أداة تحليل المواقع",
46
- description="أدخل رابط الموقع لتحليل الأداء، الترافيك، الأمان، وتجربة المستخدم. جميع النتائج تظهر ��باشرة داخل الصفحة."
47
- )
48
-
49
- # Launch the app
50
- interface.launch(share=True)
 
 
1
  import requests
2
+ import gradio as gr
3
+ from urllib.parse import urlparse
4
+ import socket
5
 
6
+ def check_url_status(url):
7
+ """تحقق من حالة الرابط"""
8
  try:
 
 
 
 
 
9
  response = requests.get(url, timeout=5)
10
+ if response.status_code == 200:
11
+ return f"✅ الرابط يعمل بشكل صحيح! (Status Code: {response.status_code})"
12
+ else:
13
+ return f"⚠️ الرابط لا يعمل بشكل كامل. (Status Code: {response.status_code})"
14
+ except requests.exceptions.RequestException as e:
15
+ return f"❌ خطأ أثناء محاولة الوصول للرابط: {e}"
 
16
 
17
+ def analyze_website(url):
18
+ """تحليل أساسي للموقع"""
19
+ try:
20
+ parsed_url = urlparse(url)
21
+ ip_address = socket.gethostbyname(parsed_url.netloc)
22
+ headers = requests.head(url).headers
23
+
24
+ info = f"""
25
+ 🌐 **معلومات الموقع**:
26
+ - **النطاق (Domain):** {parsed_url.netloc}
27
+ - **عنوان IP:** {ip_address}
28
 
29
+ 📄 **الرؤوس (Headers):**
30
+ {headers}
31
+ """
32
+ return info
33
+ except Exception as e:
34
+ return f"❌ خطأ أثناء تحليل الموقع: {e}"
35
 
36
+ def advertising_insights(url):
37
+ """اقتراحات لتحسين الأداء الدعائي"""
38
+ try:
39
+ response = requests.get(url)
40
+ if "google-analytics" in response.text:
41
+ analytics = "✅ الموقع يستخدم Google Analytics لتحليل الزوار."
42
+ else:
43
+ analytics = "⚠️ الموقع لا يستخدم Google Analytics. يُنصح بتفعيلها لتحسين التحليل."
44
+
45
+ suggestions = """
46
+ 🎯 **اقتراحات لتحسين الأداء الدعائي**:
47
+ 1. **استخدام Google Ads**: لتوسيع نطاق الحملات الإعلانية.
48
+ 2. **تحسين محركات البحث (SEO)**: لتحسين الترتيب في البحث.
49
+ 3. **إضافة أدوات Heatmaps مثل Hotjar**: لفهم سلوك الزوار.
50
+ """
51
+ return f"{analytics}\n\n{suggestions}"
52
  except Exception as e:
53
+ return f" خطأ أثناء تحليل البيانات الدعائية: {e}"
 
54
 
55
+ with gr.Interface(
56
+ fn=[check_url_status, analyze_website, advertising_insights],
57
+ inputs=gr.Textbox(label="أدخل الرابط", placeholder="https://example.com"),
 
58
  outputs=[
59
+ gr.Textbox(label="حالة الرابط"),
60
+ gr.Textbox(label="تحليل الموقع"),
61
+ gr.Textbox(label="اقتراحات تحسين الأداء الدعائي")
 
62
  ],
63
+ title="تحليل المواقع والروابط",
64
+ description="أداة شاملة لاختبار الروابط، تحليل المواقع، وتقديم اقتراحات لتحسين الأداء الدعائي."
65
+ ) as demo:
66
+ demo.launch()