From e5b9997cdd77617ad097251a9169103eced909f5 Mon Sep 17 00:00:00 2001 From: Yuval Adam Date: Tue, 24 Dec 2013 16:27:06 +0200 Subject: Article parse tests do not pass --- ...icle_haaretz_id__del_index_haaretzarticle_ur.py | 91 + newsdiff/core/models.py | 5 +- newsdiff/core/parsers/haaretz.py | 23 +- newsdiff/core/tasks.py | 1 - newsdiff/core/tests/__init__.py | 0 newsdiff/core/tests/content/1.2198200.html | 4247 ++++++ newsdiff/core/tests/content/haaretz.html | 13160 ------------------- newsdiff/core/tests/content/homepage.html | 13160 +++++++++++++++++++ newsdiff/core/tests/tests.py | 15 +- 9 files changed, 17529 insertions(+), 13173 deletions(-) create mode 100644 newsdiff/core/migrations/0003_auto__add_field_haaretzarticle_haaretz_id__del_index_haaretzarticle_ur.py create mode 100644 newsdiff/core/tests/__init__.py create mode 100644 newsdiff/core/tests/content/1.2198200.html delete mode 100644 newsdiff/core/tests/content/haaretz.html create mode 100644 newsdiff/core/tests/content/homepage.html diff --git a/newsdiff/core/migrations/0003_auto__add_field_haaretzarticle_haaretz_id__del_index_haaretzarticle_ur.py b/newsdiff/core/migrations/0003_auto__add_field_haaretzarticle_haaretz_id__del_index_haaretzarticle_ur.py new file mode 100644 index 0000000..019d11e --- /dev/null +++ b/newsdiff/core/migrations/0003_auto__add_field_haaretzarticle_haaretz_id__del_index_haaretzarticle_ur.py @@ -0,0 +1,91 @@ +# -*- coding: utf-8 -*- +from south.utils import datetime_utils as datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Removing unique constraint on 'HaaretzArticle', fields ['url'] + db.delete_unique(u'core_haaretzarticle', ['url']) + + # Adding field 'HaaretzArticle.haaretz_id' + db.add_column(u'core_haaretzarticle', 'haaretz_id', + self.gf('django.db.models.fields.CharField')(default=1.99999999, unique=True, max_length=12, db_index=True), + keep_default=False) + + # Removing index on 'HaaretzArticle', fields ['url'] + db.delete_index(u'core_haaretzarticle', ['url']) + + + def backwards(self, orm): + # Adding index on 'HaaretzArticle', fields ['url'] + db.create_index(u'core_haaretzarticle', ['url']) + + # Deleting field 'HaaretzArticle.haaretz_id' + db.delete_column(u'core_haaretzarticle', 'haaretz_id') + + # Adding unique constraint on 'HaaretzArticle', fields ['url'] + db.create_unique(u'core_haaretzarticle', ['url']) + + + models = { + u'auth.group': { + 'Meta': {'object_name': 'Group'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + u'auth.permission': { + 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + u'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + u'core.haaretzarticle': { + 'Meta': {'object_name': 'HaaretzArticle'}, + 'date': ('django.db.models.fields.DateTimeField', [], {}), + 'haaretz_id': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '12', 'db_index': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'subtitle': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'text': ('django.db.models.fields.TextField', [], {}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '140'}), + 'url': ('django.db.models.fields.CharField', [], {'max_length': '200'}) + }, + u'core.haaretzimage': { + 'Meta': {'object_name': 'HaaretzImage'}, + 'article': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['core.HaaretzArticle']"}), + 'caption': ('django.db.models.fields.CharField', [], {'max_length': '140', 'null': 'True', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100'}), + 'origin_url': ('django.db.models.fields.CharField', [], {'max_length': '200'}) + }, + u'core.newsdiffuser': { + 'Meta': {'object_name': 'NewsDiffUser'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + } + } + + complete_apps = ['core'] \ No newline at end of file diff --git a/newsdiff/core/models.py b/newsdiff/core/models.py index aed8acd..ef58b0a 100644 --- a/newsdiff/core/models.py +++ b/newsdiff/core/models.py @@ -8,7 +8,8 @@ class NewsDiffUser(AbstractUser): class HaaretzArticle(models.Model): - url = models.CharField(max_length=200, unique=True, db_index=True) + url = models.CharField(max_length=200) + haaretz_id = models.CharField(max_length=12, unique=True, db_index=True) title = models.CharField(max_length=140) subtitle = models.CharField(max_length=300, blank=True, null=True) text = models.TextField() @@ -19,7 +20,7 @@ class HaaretzArticle(models.Model): class HaaretzImage(models.Model): - article = models.ForeignKey(HaaretzArticle) + article = models.ForeignKey(HaaretzArticle, related_name='images') origin_url = models.CharField(max_length=200) image = models.ImageField(upload_to='images/haaretz') caption = models.CharField(max_length=140, blank=True, null=True) diff --git a/newsdiff/core/parsers/haaretz.py b/newsdiff/core/parsers/haaretz.py index 61e63c4..e564436 100644 --- a/newsdiff/core/parsers/haaretz.py +++ b/newsdiff/core/parsers/haaretz.py @@ -17,11 +17,14 @@ class HaaretzParser(HtmlSoupParser): IMAGE_MODEL = HaaretzImage def parse_homepage(self, soup): - articles = soup.find_all('a', href=self.ARTICLE_HREF_PATTERN) - hrefs = [article['href'] for article in articles] - return list(set(map(self.clean_article_href, hrefs))) + links = soup.find_all('a', href=self.ARTICLE_HREF_PATTERN) + hrefs = [link['href'] for link in links] + article_urls = list(set(map(self.clean_article_href, hrefs))) + return article_urls - def parse_article(self, soup): + def parse_article(self, haaretz_id, soup, url=None): + if not url: + url = 'http://www.haaretz.co.il/{}'.format(haaretz_id) title = soup.find('h1', class_='mainTitle').text.strip() subtitle = soup.find('h2', class_='subtitle').text.strip() author_bar = soup.find('ul', class_='author-bar') @@ -31,8 +34,8 @@ class HaaretzParser(HtmlSoupParser): article_body = soup.find('div', id='article-box').find_all('p') article_text = '\n\n'.join([p.text.strip() for p in article_body]) - existing_article = self.ARTICLE_MODEL.objects.get(url=url) - if existing_article: + try: + existing_article = self.ARTICLE_MODEL.objects.get(haaretz_id=haaretz_id) changed = False if title != existing_article.title: existing_article.title = title @@ -45,18 +48,20 @@ class HaaretzParser(HtmlSoupParser): changed = True if changed: existing_article.save() - else: - article = self.ARTICLE_MODEL(url=url, title=title, subtitle=subtitle, text=article_text, date=article_date) + except self.ARTICLE_MODEL.DoesNotExist: + article = self.ARTICLE_MODEL(url=url, haaretz_id=haaretz_id, title=title, + subtitle=subtitle, text=article_text, date=article_date) article.save() images = soup.find('div', id='article-box').find_all('div', class_='inArticleHoldImage') + print images for image in images: img = image.find('img') img_url = 'http://www.haaretz.co.il{}'.format(img['src'].split('_gen')[0]) caption = img.title name, image_file = get_image_from_url(img_url) - article_image = HaaretzImage(article=article, origin_url=url, caption=caption) + article_image = self.IMAGE_MODEL(article=article, origin_url=img_url, caption=caption) article_image.image.save(name, image_file) article_image.save() diff --git a/newsdiff/core/tasks.py b/newsdiff/core/tasks.py index e513421..223aea5 100644 --- a/newsdiff/core/tasks.py +++ b/newsdiff/core/tasks.py @@ -1,2 +1 @@ - from newsdiff.celery import app diff --git a/newsdiff/core/tests/__init__.py b/newsdiff/core/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/newsdiff/core/tests/content/1.2198200.html b/newsdiff/core/tests/content/1.2198200.html new file mode 100644 index 0000000..0a5f850 --- /dev/null +++ b/newsdiff/core/tests/content/1.2198200.html @@ -0,0 +1,4247 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + סופות טורנדו וקרח ברחבי ארה"ב וקנדה, טמפרטורות גבוהות בניו יורק ופילדלפיה - אמריקה - הארץ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + + + + + + +
+ + +
+ + + + + + + +
+ + + + + + +
+
+ + + + + + + + +
+
+ + +
+ + +
+ + +
+ מצטרפים ומשדרגים לאחת מחבילות התוכן האיכותי של הארץ. עכשיו במבצע השקה! רק 4.90 ₪ לחודש הראשון. + נסו עכשיו >> +
+
+ +
+ +
+
+
+
+
+
+ הרשמה למערכת +
+ + +
+
+
+
+
שם פרטי
+ +
שם משפחה
+ +
דוא"ל
+ +
+
+
+
בחר סיסמה
+ +
+
+
הקלד סיסמה מחדש
+ +
+
אזור מגורים
+ +
+
+
+
+ +  ?נרשמתם בעבר לאתרי קבוצת הארץ + + + התחברו + +   |   + + שחזרו סיסמה + +
+ + +
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+ + + + + + + + +
+ +
+
+
+ + + + + + + +
+
+
+ +
+ + + + + + +
+
+
+
+ +
+ + + +
+
+
+ + + + + + + + + + + + +
+
+ +
+
+
+
+
+
+
+
+
+ + + + + + + + + + + + +
+

+ חדשות + +

+

+ בעולם + +

+

+ אמריקה +

+
+ + + + + + + + +
+ +

+ רוח החג || + מאות אלפים מנותקים מחשמל באירופה, ארה"ב וקנדה בעקבות סופות +

+ +

כ-20 בני אדם נהרגו בארה"ב ובקנדה בעקבות סופות ורוחות חזקות, ובצרפת ובריטניה מאות אלפים נותקו מחשמל. היום החלו הסופות להחלש

+
+ +
+
+
+
+ + + + + +
+
+ +
+
+
+
+ + + + + + +

+ מזג אוויר קשה, מסופות טורנדו ועד לסערות קרח, גרם מסוף השבוע ועד היום (שלישי) למותם של 11 בני אדם לפחות בארה"ב ולפחות חמישה הרוגים נוספים בקנדה. גם באירופה מורגש מזג אוויר חריג, ומאות אלפים מנותקים מרשת החשמל. לעומת זאת, טמפרטורות גבוהות במיוחד נרשמו בפילדלפיה ובניו יורק ובניו אינגלנד נרשמו סערות קרח בחלקים מהמדינה. + + רוחות עזות וגשם זלעפות שהיכו במערב צרפת הותירו 240,000 בתים ללא חשמל. המחוזות ברוטניה ונורמנדי הם בין המחוזות שנפגעו באופן הקשה ביותר מהרוחות שהגיעו למהירות של כ-130 קמ"ש, ואדם אחר נהרג בעקבות תנאי מזג האוויר. חברת החשמל הצרפתית הכריזה על מצב חירום לתיקון התקלות עד לחג... +

+ + + + + + + +
+
+
+
רוצים להמשיך לקרוא? +
+
+
+ +
+ לחצו כאן לרכישת מנוי + ב-4.90 ₪ בלבד לחודש הראשון, או + הירשמו חינם + כדי לקרוא עד 10 כתבות בחודש. כבר יש לכם מנוי? + לחצו כאן + כדי להתחבר לאתר +
+
+
+ + +
+ + + + + + + : + +
+ + + + + + + + +
+


+ + + + + + + + + + + + + +
+ + + + +
+ + + + + + + + +
+ + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ + + + + + + + +
+
+
הוספת תגובה
+
+
תודה על פנייתך, היא תיבדק על ידי המערכת
+
+
+ +
+
+ + + + + + + + + + + + + + +
+
+ +
+
+ + להוספת תגובה בלתי מזוהה לחץ כאן + להוספת תגובה מזוהה לחץ כאן +
+ + +
+

הקלד את הנושא

+
+
+
+ +
+

הקלד את התגובה

+
+
+
+   +
+ בשליחת תגובה זו הנני מצהיר שאני מסכים עם + + תנאי השימוש של אתר הארץ + + +
+ +
תודה על פנייתך, היא תיבדק על ידי המערכת
+ + +
+ +
+ +
+ +
+ +
+ + + + + + + + + + + + + +
+
+
+
+
+ + להוספת תגובה בלתי מזוהה לחץ כאן + להוספת תגובה מזוהה לחץ כאן +
+ + +
+

הקלד את הנושא

+
+
+
+ +
+

הקלד את התגובה

+
+
+
+   + סגור +
+ בשליחת תגובה זו הנני מצהיר שאני מסכים עם + + תנאי השימוש של אתר הארץ + + +
+ +
תודה על פנייתך, היא תיבדק על ידי המערכת
+ + +
+
+
+ + + + + + + + + + + + + + + + + + הצג את כל התגובות פתוחות + + + + + + + 01 + + + + + + חייבים לשלוח להם את ביבי שיהיה לשמאלנים הטיפשים את מי להאשים באי מוכנות + +  (לת) + + + + את המשלחת יוביל אמנון אברמוביץ +
    +
  • 11:55
  • +
  • 24.12.13
  • +
+
+ + + +

+
+
+
+
+ + + + + 02 + + + + + + מקווה שלכל אחינו היהודים שלום. בואו לארץ ישראל ותעזבו את הארץ המקוללת +ומוכת פגעי הטבע הזאת. + + + + + אורנה מירושלים +
    +
  • 12:39
  • +
  • 24.12.13
  • +
+
+ + + +


+אפילו הרפורמים יכולים לחזור בתשובה, להתגייר מחדש ולעלות לארץ ישראל. +

+
+
+
+
+ + + + + 03 + + + + + + את מי יאשים שטרסלר עכשיו? + + + + + צדקיהו +
    +
  • 13:00
  • +
  • 24.12.13
  • +
+
+ + + +

חברות חשמל פרטיות? כן.
+נראה כמה זמן יקח עד שיחובר החשמל. +

+
+
+
+
+ + + + + 04 + + + + + + תשלחו לשם את ביבי שיעזור להם בסידור הענין, אבל עם כרטיס בכיוון אחד. + +  (לת) + + + + יורם +
    +
  • 15:05
  • +
  • 24.12.13
  • +
+
+ + + +

+
+
+
+
+
+
+
+ + + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ הכתבות הנקראות באתר +
+
+ +
+ + + + + + + + + +
+ +
+
+ +
+ + +
+
+ + + +צילום:רויטרס +
+ + + 01 + מסכמים שנה || + 2013 הייתה שנת המריחואנה + + +
+
+ +
+ +
+ + + + + 24.12.2013 + + + 12:32 + + + + 8 + + +
+
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + +
+ + + + + + +


+ + + + + + + + + + + + + + +
+
+
+
+ עוד כתבות נקראות +
+
+ +
+ + + + + + + + + +
+ +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + +
+ + +
+ + + + + + + + +
+
+
חדש: 10 הנצפות ישירות למייל
+
רוצים להתעדכן במה שמתרחש ולקבל המלצות קריאה? הירשמו לניוזלטרים החדשים של הארץ
+ +
+
אני מאשר/ת קבלת דיוורים, מידע שיווקי והטבות
+ +
+
נא להזין כתובת מייל חוקית
+
+ +
+
+
+
+ + + + + + + + + +
+
+ + + + + + + + + + + +
+ +
+ +
+ + +
+
+
+ + + + + + + +
+ + + + + + + + + + + + + + + + + + +
+
+ +
פעילות
+
המלצות
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + +
+ + + + + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ + + + +
+
+
+ +
+
+ +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + \ No newline at end of file diff --git a/newsdiff/core/tests/content/haaretz.html b/newsdiff/core/tests/content/haaretz.html deleted file mode 100644 index ea4d761..0000000 --- a/newsdiff/core/tests/content/haaretz.html +++ /dev/null @@ -1,13160 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - חדשות, ידיעות מהארץ והעולם - עיתון הארץ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - - - - - -
- - -
- - - - - - - -
- - - - - - -
-
- - - - - - - - -
-
- - -
- - -
- - -
- מצטרפים ומשדרגים לאחת מחבילות התוכן האיכותי של הארץ. עכשיו במבצע השקה! רק 4.90 ₪ לחודש הראשון. - נסו עכשיו >> -
-
- -
- -
-
-
-
-
-
- הרשמה למערכת -
- - -
-
-
-
-
שם פרטי
- -
שם משפחה
- -
דוא"ל
- -
-
-
-
בחר סיסמה
- -
-
-
הקלד סיסמה מחדש
- -
-
אזור מגורים
- -
-
-
-
- -  ?נרשמתם בעבר לאתרי קבוצת הארץ - - - התחברו - -   |   - - שחזרו סיסמה - -
- - -
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
- - - - - - - - -
- -
-
-
- - - - - - - -
-
-
- -
- - - - - - - - - - - - - - - -
-
-
-
- -
- - -
-
-
- - - - - - - - - - - - -
-
- -
- - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - - - -
- - - - - - - -
- - - - - - - -
- - - - - - - -
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - -
- - - - - - - - - -
-
- - - - - - - - - - - -
-
-
- כתבות אחרונות באתר -
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - - - - - - - - - -
- - -
- - - - - - - - - -
- -
- - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - -
-
-
- -
- - - - - - - - - - - - - - - - - -
- -
- - - -
-
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
- -
-
- - - - - - - - - - -
- - - - - -
-
-
-
-
- - - - - - - - - - - - -
- -
- - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - -
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - -
- - - - - - - - - - -
- -
- - - - - - - - - - - - -
- -
-
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - - - - - -
- - - -
- - - - - - - - - - - -
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - -
- -
- - - - - - - - - - -
- -
-
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - -
- - - - - - - - - - -
- -
- - - - - - - - - - -
- -
-
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - - - - -
- - -
- - - -
- - - - - - - - - - - - - - - - -
- -
- - - - - - - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - - - - - -
- - - -
- - - - - - - - - - -
- - - - - -
- -
- - - - - -
- - - - - - - - - - - - - -
- - - - - - - - - - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
- - - - - - - - - - - - -
- - - -
- - - - - - - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - -
- - - - - - - - -
-
-
onlife
- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - - - -
- - - - - - - - - -
- - - - - - - - - - - -
- - - - - - - - - - -
- -
- -
-
- עוד מצגות -
-
- -
-
- - - - - - - - - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - -
- -
- -
- -
-
-
- - - -
- - - - - - - -
- - - - - - -
- - - -
עכבר EXTRA
- - - - - - -
- - - - -
- - - - -
- - - - -
- - - - - - - - -
- - - - - -

- - - - - -
-
- - - - - - - - - - - -
-
-
-
- מגזין -
-
- -
- - - - - - - - - -
- -
-
- -
- - -
-
- - - -"הומלסים קוראים שירה" - צילום:צילום מסך מתוך יוטיוב -
- - - 01 - כשחסרי בית עושים שירה - - -
-
- -
- -
- - - - 22.12.2013 - - - 10:43 - -
-
- -
-
-
-
- - -
-
-
- - - - - - - - - - - - -
-
- -
- - - - - - - - - -
- -
-
- -
- - -
-
- - - -תומכים בהעלאת שכר המינימום צועדים מסי־טק לסיאטל (למעלה) ומפגינים בקליפורניה (מימין) ובניו יורק. "אדם שעובד במשרה מלאה לא צריך לחיות בעוני"  - צילום:רויטרס -
- - - 01 - העניים בארה"ב מתקוממים ומגיעים להשגים - - -
-
- -
- -
- - אשר שכטר - - 22.12.2013 - - - 08:44 - -
-
- -
-
-
-
- - -
-
-
- - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - -
-
-
- - - - - - - - - - - -
-
-
חדש: 10 הנצפות ישירות למייל
-
רוצים להתעדכן במה שמתרחש ולקבל המלצות קריאה? הירשמו לניוזלטרים החדשים של הארץ
- -
-
אני מאשר/ת קבלת דיוורים, מידע שיווקי והטבות
- -
-
נא להזין כתובת מייל חוקית
-
- -
-
-
-
- - - - - - - -

- - - - - - - - - -
-
- -
- - - - - - - - - -
- -
-
- -
- - -
-
- - - -יוחי ארנון ותאופיק חמאיסי בטחנה -
- - - 01 - תורת החלקיקים של טחנת הקמח מכפר כנא -
-
- -
-
- -
- -
- - - - 21.12.2013 - - - 22:34 - -
-
- -
-
-
-
- - -
-
-
- - - - - - - - - - - - -
-
- -
- - - - - - - - - -
- -
-
- - -
-
- - -
-
-
- - - - - - - - - - - - -
-
- -
- - - - - - - - - -
- -
-
- -
- - -
-
- - - -
- - - 01 - הצילום שמוכיח שליידי גאגא היא גאון -
-
- -
-
- -
- -
- - - - 20.12.2013 - - - 15:35 - - - - 65 - - -
-
- -
-
-
-
- - -
-
-
- - - - - - - - - - - -
- - -
- - - - - - - - - -
-
- -
- - - - - - - - - -
- -
-
- -
- - -
-
- - - -צילום: -
- - - 01 - מסעדת השף הערבית הראשונה קולעת בול -
-
- -
-
- -
- -
- - שגיא כהן - - 20.12.2013 - - - 06:00 - - - - 43 - - -
-
- -
-
-
-
- - -
-
-
- - - - - - - - - - - - -
-
- -
- - - - - - - - - -
- -
-
- -
- - -
-
- - - -שמורת עין אפק, הסמוכה לקרית ביאליק - צילום:משה גלעד -
- - - 01 - אתרי הטבע בישראל שוב שותים לרוויה -
-
- -
-
- -
- -
- - - - 22.12.2013 - - - 06:12 - - - - 6 - - -
-
- -
-
-
-
- - -
-
-
- - - - - - - - - - - - -
-
- -
- - - - - - - - - -
- -
-
- -
- - -
-
- - - -אשה נושאת את דיוקנו של אדוארד סנודן מול שגרירות ארה"ב בברלין, ביולי האחרון - צילום:רויטרס -
- - - 01 - המעיין הנובע של איש השנה -
-
- -
-
- -
- -
- - - - 21.12.2013 - - - 20:31 - - - - 17 - - -
-
- -
-
-
-
- - -
-
-
- - - - - - - -
- - - - - - - - - - - - -
-
- -
- - - - - - - - - -
- -
-
- -
- - -
-
- - - -גטו ורשה - צילום:Knobloch Ludwig -
- - - 01 - מרד גטו ורשה - לא היה כזה -
-
- -
-
- -
- -
- - עלי גת - - 19.12.2013 - - - 20:00 - - - - 172 - - -
-
- -
-
-
-
- - -
-
-
- - - - - - - - - - - - -
-
- -
- - - - - - - - - -
- -
-
- -
- - -
-
- - - -נוחי דנקנר יוצא מבית המשפט בת"א לאחר שאיבד את השליטה באי.די.בי - צילום:תומר אפלבאום -
- - - 01 - השקרים שמספרים לנו על נוחי דנקנר - - -
-
- -
- -
- - - - 21.12.2013 - - - 21:11 - -
-
- -
-
-
-
- - -
-
-
- - - - - - - - - - - - - -
-
- - - - - - - - - - - -
- -
- -
- - -
-
-
- - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - -
-
-
- - - - - - - - - - - - -
-
- -
- - - - - - - - - -
- -
- -
- - -
-
-
- - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - -
-
- - - - - - -
- -
- -
- - - - - - - -
- -
- -
- -
-
-
- - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - -
- -
-
- -
-
-
-
- - -צילום:אוהד רומנו -
- - - 01 - סדרת המקור הטובה של השנה - - -
-
- -
- -
- - עכבר העיר - - 22.12.2013 - - - 09:30 - -
-
- -
-
-
-
- - -
-
-
- - - - - - - - - - - - -
-
- -
- - - - - - - - - -
- -
-
- -
-
-
-
- - -צילום:Dreamstime -
- - - 01 - סופשנה || - סילבסטר בתל אביב - - -
-
- -
- -
- - עכבר העיר - - 22.12.2013 - - - 09:20 - -
-
- -
-
-
-
- - -
-
-
- - - - - - - - - - - - -
-
- -
- - - - - - - - - -
- -
-
- - -
-
- - -
-
-
- - - - - - - - - - - - - - - - - - -
- - - - -
- - - - - - - - - - הפופולריות - - - - - - - - - - - -
-
- -
פעילות
-
המלצות
-
-
- -
-
- -
-
- - - - - - -
-
-
-
- - - - - - - - - - - - - - - -
- -
- -
-
- כתבות שאולי פספסתם... -
-
- -
- - - -
-
- - - - - - - - - - - -
-
-
- הצעות מיוחדות -
- -
- - - - - - -
- - - - -
- - - - -
- - - - -
- - - - -
- - - - -
- - - - -
- -
-
-
- - - - - - -
-
-
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - \ No newline at end of file diff --git a/newsdiff/core/tests/content/homepage.html b/newsdiff/core/tests/content/homepage.html new file mode 100644 index 0000000..ea4d761 --- /dev/null +++ b/newsdiff/core/tests/content/homepage.html @@ -0,0 +1,13160 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + חדשות, ידיעות מהארץ והעולם - עיתון הארץ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + + + + + + +
+ + +
+ + + + + + + +
+ + + + + + +
+
+ + + + + + + + +
+
+ + +
+ + +
+ + +
+ מצטרפים ומשדרגים לאחת מחבילות התוכן האיכותי של הארץ. עכשיו במבצע השקה! רק 4.90 ₪ לחודש הראשון. + נסו עכשיו >> +
+
+ +
+ +
+
+
+
+
+
+ הרשמה למערכת +
+ + +
+
+
+
+
שם פרטי
+ +
שם משפחה
+ +
דוא"ל
+ +
+
+
+
בחר סיסמה
+ +
+
+
הקלד סיסמה מחדש
+ +
+
אזור מגורים
+ +
+
+
+
+ +  ?נרשמתם בעבר לאתרי קבוצת הארץ + + + התחברו + +   |   + + שחזרו סיסמה + +
+ + +
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+ + + + + + + + +
+ +
+
+
+ + + + + + + +
+
+
+ +
+ + + + + + + + + + + + + + + +
+
+
+
+ +
+ + +
+
+
+ + + + + + + + + + + + +
+
+ +
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + + + + + + +
+ + + + + + + +
+ + + + + + + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + + + + + + + + +
+
+ + + + + + + + + + + +
+
+
+ כתבות אחרונות באתר +
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + + + + + + + + + +
+ + +
+ + + + + + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+
+
+ +
+ + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
+ +
+
+ + + + + + + + + + +
+ + + + + +
+
+
+
+
+ + + + + + + + + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + +
+ + + + + + + + + + +
+ +
+ + + + + + + + + + + + +
+ +
+
+ +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + + + + + + +
+ + + +
+ + + + + + + + + + + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + +
+ +
+
+ +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + +
+ + + + + + + + + + +
+ +
+ + + + + + + + + + +
+ +
+
+ +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + +
+ + +
+ + + +
+ + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + +
+ +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + + + + + + +
+ + + +
+ + + + + + + + + + +
+ + + + + +
+ +
+ + + + + +
+ + + + + + + + + + + + + +
+ + + + + + + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + + + + + + + +
+ + + +
+ + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+ + + + + + + + +
+
+
onlife
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + + + +
+ + + + + + + + + +
+ + + + + + + + + + + +
+ + + + + + + + + + +
+ +
+ +
+
+ עוד מצגות +
+
+ +
+
+ + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
+
+
+ + + +
+ + + + + + + +
+ + + + + + +
+ + + +
עכבר EXTRA
+ + + + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + + + + +
+ + + + + +

+ + + + + +
+
+ + + + + + + + + + + +
+
+
+
+ מגזין +
+
+ +
+ + + + + + + + + +
+ +
+
+ +
+ + +
+
+ + + +"הומלסים קוראים שירה" - צילום:צילום מסך מתוך יוטיוב +
+ + + 01 + כשחסרי בית עושים שירה + + +
+
+ +
+ +
+ + + + 22.12.2013 + + + 10:43 + +
+
+ +
+
+
+
+ + +
+
+
+ + + + + + + + + + + + +
+
+ +
+ + + + + + + + + +
+ +
+
+ +
+ + +
+
+ + + +תומכים בהעלאת שכר המינימום צועדים מסי־טק לסיאטל (למעלה) ומפגינים בקליפורניה (מימין) ובניו יורק. "אדם שעובד במשרה מלאה לא צריך לחיות בעוני"  - צילום:רויטרס +
+ + + 01 + העניים בארה"ב מתקוממים ומגיעים להשגים + + +
+
+ +
+ +
+ + אשר שכטר + + 22.12.2013 + + + 08:44 + +
+
+ +
+
+
+
+ + +
+
+
+ + + + + + + + + + + + +
+
+ +
+ + + + + + + + + + + + +
+
+
+ + + + + + + + + + + +
+
+
חדש: 10 הנצפות ישירות למייל
+
רוצים להתעדכן במה שמתרחש ולקבל המלצות קריאה? הירשמו לניוזלטרים החדשים של הארץ
+ +
+
אני מאשר/ת קבלת דיוורים, מידע שיווקי והטבות
+ +
+
נא להזין כתובת מייל חוקית
+
+ +
+
+
+
+ + + + + + + +

+ + + + + + + + + +
+
+ +
+ + + + + + + + + +
+ +
+
+ +
+ + +
+
+ + + +יוחי ארנון ותאופיק חמאיסי בטחנה +
+ + + 01 + תורת החלקיקים של טחנת הקמח מכפר כנא +
+
+ +
+
+ +
+ +
+ + + + 21.12.2013 + + + 22:34 + +
+
+ +
+
+
+
+ + +
+
+
+ + + + + + + + + + + + +
+
+ +
+ + + + + + + + + +
+ +
+
+ + +
+
+ + +
+
+
+ + + + + + + + + + + + +
+
+ +
+ + + + + + + + + +
+ +
+
+ +
+ + +
+
+ + + +
+ + + 01 + הצילום שמוכיח שליידי גאגא היא גאון +
+
+ +
+
+ +
+ +
+ + + + 20.12.2013 + + + 15:35 + + + + 65 + + +
+
+ +
+
+
+
+ + +
+
+
+ + + + + + + + + + + +
+ + +
+ + + + + + + + + +
+
+ +
+ + + + + + + + + +
+ +
+
+ +
+ + +
+
+ + + +צילום: +
+ + + 01 + מסעדת השף הערבית הראשונה קולעת בול +
+
+ +
+
+ +
+ +
+ + שגיא כהן + + 20.12.2013 + + + 06:00 + + + + 43 + + +
+
+ +
+
+
+
+ + +
+
+
+ + + + + + + + + + + + +
+
+ +
+ + + + + + + + + +
+ +
+
+ +
+ + +
+
+ + + +שמורת עין אפק, הסמוכה לקרית ביאליק - צילום:משה גלעד +
+ + + 01 + אתרי הטבע בישראל שוב שותים לרוויה +
+
+ +
+
+ +
+ +
+ + + + 22.12.2013 + + + 06:12 + + + + 6 + + +
+
+ +
+
+
+
+ + +
+
+
+ + + + + + + + + + + + +
+
+ +
+ + + + + + + + + +
+ +
+
+ +
+ + +
+
+ + + +אשה נושאת את דיוקנו של אדוארד סנודן מול שגרירות ארה"ב בברלין, ביולי האחרון - צילום:רויטרס +
+ + + 01 + המעיין הנובע של איש השנה +
+
+ +
+
+ +
+ +
+ + + + 21.12.2013 + + + 20:31 + + + + 17 + + +
+
+ +
+
+
+
+ + +
+
+
+ + + + + + + +
+ + + + + + + + + + + + +
+
+ +
+ + + + + + + + + +
+ +
+
+ +
+ + +
+
+ + + +גטו ורשה - צילום:Knobloch Ludwig +
+ + + 01 + מרד גטו ורשה - לא היה כזה +
+
+ +
+
+ +
+ +
+ + עלי גת + + 19.12.2013 + + + 20:00 + + + + 172 + + +
+
+ +
+
+
+
+ + +
+
+
+ + + + + + + + + + + + +
+
+ +
+ + + + + + + + + +
+ +
+
+ +
+ + +
+
+ + + +נוחי דנקנר יוצא מבית המשפט בת"א לאחר שאיבד את השליטה באי.די.בי - צילום:תומר אפלבאום +
+ + + 01 + השקרים שמספרים לנו על נוחי דנקנר + + +
+
+ +
+ +
+ + + + 21.12.2013 + + + 21:11 + +
+
+ +
+
+
+
+ + +
+
+
+ + + + + + + + + + + + + +
+
+ + + + + + + + + + + +
+ +
+ +
+ + +
+
+
+ + + + + + + + + + + + + + + + + +
+
+ +
+ + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + +
+
+ +
+ + + + + + + + + +
+ +
+ +
+ + +
+
+
+ + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+
+ + + + + + +
+ +
+ +
+ + + + + + + +
+ +
+ +
+ +
+
+
+ + + + + + + + + + + + + + + + + + + +
+
+ +
+ + + + + + + + + +
+ +
+
+ +
+
+
+
+ + +צילום:אוהד רומנו +
+ + + 01 + סדרת המקור הטובה של השנה + + +
+
+ +
+ +
+ + עכבר העיר + + 22.12.2013 + + + 09:30 + +
+
+ +
+
+
+
+ + +
+
+
+ + + + + + + + + + + + +
+
+ +
+ + + + + + + + + +
+ +
+
+ +
+
+
+
+ + +צילום:Dreamstime +
+ + + 01 + סופשנה || + סילבסטר בתל אביב + + +
+
+ +
+ +
+ + עכבר העיר + + 22.12.2013 + + + 09:20 + +
+
+ +
+
+
+
+ + +
+
+
+ + + + + + + + + + + + +
+
+ +
+ + + + + + + + + +
+ +
+
+ + +
+
+ + +
+
+
+ + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + + + + + הפופולריות + + + + + + + + + + + +
+
+ +
פעילות
+
המלצות
+
+
+ +
+
+ +
+
+ + + + + + +
+
+
+
+ + + + + + + + + + + + + + + +
+ +
+ +
+
+ כתבות שאולי פספסתם... +
+
+ +
+ + + +
+
+ + + + + + + + + + + +
+
+
+ הצעות מיוחדות +
+ +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ +
+
+
+ + + + + + +
+
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + \ No newline at end of file diff --git a/newsdiff/core/tests/tests.py b/newsdiff/core/tests/tests.py index f108ed2..3eb5f6f 100644 --- a/newsdiff/core/tests/tests.py +++ b/newsdiff/core/tests/tests.py @@ -3,6 +3,7 @@ from django.test import TestCase from unipath import FSPath as Path from newsdiff.core.parsers.haaretz import HaaretzParser +from ..models import HaaretzArticle, HaaretzImage class HaaretzParsingTestCase(TestCase): @@ -15,7 +16,19 @@ class HaaretzParsingTestCase(TestCase): with open(self.CONTENT_DIR.child(filename), 'r') as f: return f.read() + def _get_soup(self, filename): + return BeautifulSoup(self._get_content(filename), 'lxml') + def test_parse_homepage(self): - soup = BeautifulSoup(self._get_content('haaretz.html')) + soup = self._get_soup('homepage.html') articles = self.parser.parse_homepage(soup) self.assertEqual(len(articles), 67) + + def test_parse_article(self): + article_id = '1.2198200' + soup = self._get_soup('{}.html'.format(article_id)) + self.parser.parse_article(article_id, soup) + article = HaaretzArticle.objects.get(haaretz_id=article_id) + self.assertEqual(article.url, 'http://www.haaretz.co.il/{}'.format(article_id)) + images = article.images + self.assertEqual(images.count(), 5) -- cgit v1.3.1