اذهب إلى المحتوى

السؤال

نشر (معدل)

السلام عليكم ,,,
انا كنت عايز استورد او احمل بيانات من على الموقعين دول بس للاسف مش عارف نهائى
انا استخدمت دالة IMPORT HTML و json وللاسف مافيش اى بيانات عايزه تيجى او تتحمل
وبعد سرش طويل اتضحلى ان المواقع ديه معموله بلغه  advanced بس مش عارف الداله او الطريقه اللى ممكن تساعدنى فى انى استورد البيانات ديه
فياريت حد يساعدنى ويقولى ازاى اقدر استورد البيانات من على المواقع ديه 
https://fantasy.premierleague.com/leagues/1767595/standings/h
https://fer2etak.com/Leagues?teamId=111187&gameweekId=196&privateLeagueId=13485&ishth=false https://fantasy.premierleague.com/leagues/1767595/standings/h 
وشكرااا 

106724718_1075002709562845_6785761261137479575_n.png

zxxa.png

تم التعديل في بواسطة Kamel Gamal

Recommended Posts

  • 0
نشر

و عليكم السلام..

إذا كان الموقع يوفر API ف بإمكانك التواصل مع الAPI الخاص بالخدمة و سحب البيانات منه أما في حال لا يوجد API أنصحك بالبحث على موقع أخر يوفر بيانات مشابة عبر الAPI أفضل من أن تتعب حالك بإستخدام لغات مثل البايثون لعمل ما يعرف بweb scrapers 

الAPI هو عبارة عن نقطة وصول للبيانات يوفرها مالك الموقع/الخدمة تسمح للتطبيقات ( سوى برامج مكتبية أو مواقع إلكترونية أو تطبيقات هواتف ) بإرسال طلبات إليه و سحب البيانات عن طريقة.

هذه مجموعة من أشهر الAPIs التي توفر بيانات النتائج و غيرها في مجال الرياضة :

1 - API-FOOTBALL خاص بكرة القدم

2 - بطول الNBA لكرة السلة API-NBA

3 - Soccer - Sports Open Data كرة قدم

4 - رياضة الكريكيت Cricket Live Scores

  • 0
نشر

تحياتي أستاذ كامل

سبب فشل import HTML و JSON هو أن البيانات تعرض بشكل dynamic عن طريق الJavascript، وتظهر فقط عند فتح الموقع من خلال المتصفح.

للتأكد من ذلك قم بتجربة الآتي عن طريق بايثون:

import requests
import os

target_link = 'https://fantasy.premierleague.com/leagues/1767595/standings/h'
response = requests.get(target_link)

print('the output will be in {}'.format(os.getcwd()))
open('output.html','w').write(x.text)

قمنا في الكود السابق بإرسال request، عن طريق مكتبة requests ثم كتابة الصفحة المرجعة إلى ملف output.html لفحصه.

قم بفتح هذا الملف وستجد أن الجداول غير موجودة، وهذا يعني أن الجداول تظهر بإستخدام الJavascript ويتطلب إستخدام المتصفح.

الأداة التي يمكن إستخدامها في هذه الحالة هي Selenium، ويمكن استيراد البيانات كالآتي:

import selenium.webdriver as webdriver
driver = webdriver.Chrome()
target_link = 'https://fantasy.premierleague.com/leagues/1767595/standings/h'

driver.get(target_link)

import pandas as pd

tables_in_page = pd.read_html(driver.page_source)
for table in tables_in_page:
  print(table)

في الكود السابق قمنا بإستخدام مكتبة pandas وهي مكتبة مهمة في علم البيانات، وقمنا بإستخدام الدالة read_html وهي تقوم بإستخراج الجداول من كود الhtml المعطى لها.

وبهذه الطريقة قمنا بجمع البيانات الموجودة في الجدول وهي الآن موجودة في المتغير tables_in_page.

اللغة المستخدمة :Python3

المكتبات المستخدمة: requests , seleniumpandas

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...