Spaces:
Sleeping
Sleeping
Update scraper.py
Browse files- scraper.py +25 -1
scraper.py
CHANGED
|
@@ -23,10 +23,34 @@ def _scrape_novel_list_page(page_url):
|
|
| 23 |
author_element = row.find('span', class_='author')
|
| 24 |
author = author_element.text.strip() if author_element else 'N/A'
|
| 25 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 26 |
results.append({
|
| 27 |
'title': title,
|
| 28 |
'url': f"https://novelfull.net{url}",
|
| 29 |
-
'author': author
|
|
|
|
| 30 |
})
|
| 31 |
return results
|
| 32 |
|
|
|
|
| 23 |
author_element = row.find('span', class_='author')
|
| 24 |
author = author_element.text.strip() if author_element else 'N/A'
|
| 25 |
|
| 26 |
+
# --- بداية التعديل: استخراج الصورة ---
|
| 27 |
+
image_url = None
|
| 28 |
+
# عادة ما تكون الصورة في div بجانب العنوان (مثلاً col-xs-3)
|
| 29 |
+
# سنبحث عن أول صورة في السطر
|
| 30 |
+
img_tag = row.find('img')
|
| 31 |
+
if img_tag:
|
| 32 |
+
# قد تكون الصورة في src أو data-cover/data-src
|
| 33 |
+
if 'src' in img_tag.attrs:
|
| 34 |
+
image_url = img_tag['src']
|
| 35 |
+
elif 'data-src' in img_tag.attrs:
|
| 36 |
+
image_url = img_tag['data-src']
|
| 37 |
+
elif 'data-cover' in img_tag.attrs:
|
| 38 |
+
image_url = img_tag['data-cover']
|
| 39 |
+
|
| 40 |
+
# إصلاح الروابط النسبية
|
| 41 |
+
if image_url and image_url.startswith('/'):
|
| 42 |
+
image_url = f"https://novelfull.net{image_url}"
|
| 43 |
+
|
| 44 |
+
# تعيين صورة افتراضية إذا لم توجد
|
| 45 |
+
if not image_url:
|
| 46 |
+
image_url = "https://placehold.co/200x300?text=No+Image"
|
| 47 |
+
# --- نهاية التعديل ---
|
| 48 |
+
|
| 49 |
results.append({
|
| 50 |
'title': title,
|
| 51 |
'url': f"https://novelfull.net{url}",
|
| 52 |
+
'author': author,
|
| 53 |
+
'image_url': image_url # <-- إضافة هذا الحقل ضروري
|
| 54 |
})
|
| 55 |
return results
|
| 56 |
|