إياد أحمد نشر 23 نوفمبر 2021 أرسل تقرير نشر 23 نوفمبر 2021 كيف يمكننا القيام بتحميل ملفات ال PDF من صفحات الويب من خلال مكتبة BeautifulSoup؟ 1 اقتباس
1 Ali Haidar Ahmad نشر 23 نوفمبر 2021 أرسل تقرير نشر 23 نوفمبر 2021 لتحميل ملف PDF، يمكنك اتباع الخطوات التالية: 1. استيراد مكتبتي BeautifulSoup و requests. 2. طلب عنوان URL والحصول على الاستجابة (من خلال مكتبة requests يمكننا تقديم الطلب والحصول على كائن استجابة). 3. البحث عن جميع الروابط الموجودة على صفحة الويب. 4. التحقق من وجود روابط PDF في تلك الروابط. 5. الحصول على ملف ال PDF من خلال كائن الاستجابة. # استيراد الوحدات from bs4 import BeautifulSoup import requests # تحديد رابط الموقع الهدف url = "page_link" # والحصول على كائن الاستجابة url طلب عنوان responseObj = requests.get(url) # BeautifulSoup تحليل النص الذي تم الحصول عليه من خلال soup = BeautifulSoup(responseObj.text, 'lxml') # إيجاد كل الروابط allLinks = soup.find_all('a') pdfNum = 0 # نقوم بتحميله pdf الآن نقوم بالمرور على كل الروابط، وعند العثور على ملف for link in allLinks: if ('.pdf' in link.get('href', [])): pdfNum += 1 print("Downloading file number: ", pdfNum) # الحصول على كائن استجابة للرابط responseObj = requests.get(link.get('href')) # pdf كتابة المحتوى في ملف pdf = open("pdf"+str(pdfNum)+".pdf", 'wb') pdf.write(responseObj.content) pdf.close() print("File ", pdfNum, " downloaded") print("All PDF files downloaded") 1 اقتباس
0 Ahmed Sharshar نشر 26 نوفمبر 2021 أرسل تقرير نشر 26 نوفمبر 2021 (معدل) يمكنك كذلك استخدام طريقة مبسطة لتحميل ملفات ال pdf مباشرة كالتالي: #استدعاء المكتبات import requests from bs4 import BeautifulSoup as bs import urllib2 _URL = "url link" r = requests.get(_URL) soup = bs(r.text) urls = [] names = [] for i, link in enumerate(soup.findAll('a')): _FULLURL = _URL + link.get('href') if _FULLURL.endswith('.pdf'): urls.append(_FULLURL) names.append(soup.select('a')[i].attrs['href']) names_urls = zip(names, urls) for name, url in names_urls: print url rq = urllib2.Request(url) res = urllib2.urlopen(rq) pdf = open("pdfs/" + name, 'wb') pdf.write(res.read()) pdf.close() وكذلك يمكنك تحميل كافة ملفات ال pdf داخل صفحة بسهولة كالتالي: #استدعاء المكتبات import os import requests from urllib.parse import urljoin from bs4 import BeautifulSoup url = "url link" #عمل ملف لحفظ ما سيتم تحميله فيه folder_location = r'E:\webscraping' #خلق الملف اذا لميكن يوجد if not os.path.exists(folder_location):os.mkdir(folder_location) response = requests.get(url) soup= BeautifulSoup(response.text, "html.parser") for link in soup.select("a[href$='.pdf']"): #تسمية الملفات المحملة filename = os.path.join(folder_location,link['href'].split('/')[-1]) with open(filename, 'wb') as f: f.write(requests.get(urljoin(url,link['href'])).content) تم التعديل في 26 نوفمبر 2021 بواسطة Ahmed Sharshar اقتباس
السؤال
إياد أحمد
كيف يمكننا القيام بتحميل ملفات ال PDF من صفحات الويب من خلال مكتبة BeautifulSoup؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.