feedparser وأخبار جوجل
-
13-09-2019 - |
سؤال
أحاول تنزيل Corpus من الأخبار (لمحاولة القيام ببعض معالجة اللغة الطبيعية) من أخبار Google باستخدام FeedParser العالمي مع Python. لا أعرف حقا شيئا من XML، أنا فقط أستخدم مثالا على كيفية استخدام FeedParser. المشكلة هي أنني لا أستطيع أن أجدها في DICT أحصل عليها من RSS Feed المحتوى من الأخبار فقط العنوان.
الرمز الذي أحاول حاليا استخدامه هو:
import feedparser
url = 'http://news.google.com.br/news?pz=1&cf=all&ned=us&hl=en&output=rss'
# just some GNews feed - I'll use a specific search later
feed = feedparser.parse(url)
for post in feed.entries:
print post.title
print post.keys()
المفاتيح التي أحصل عليها في هذا المنصب هي مجرد عنوان أو ملخص وتاريخ وما إلى ذلك ... لا يوجد محتوى.
هل هذه مشكلة مع أخبار Google أو أفعل أي شيء خاطئ؟ هل هناك طريقة للقيام بذلك؟
المحلول
هل قمت بفحص الخلاصة من أخبار Google؟
هناك عنصر جذر في كل تغذية تحتوي على مجموعة من المعلومات والإدخالات الفعلية DICT. إليك طريقة قذرة لمعرفة ما هو متاح:
import feedparser
d = feedparser.parse('http://news.google.com/news?pz=1&cf=all&ned=ca&hl=en&topic=w&output=rss')
print [field for field in d]
من ما يمكننا أن نرى لدينا entries
الحقل الذي يحتوى على الأرجح .. إدخالات الأخبار! اذا أنت:
import pprint
pprint.pprint(entry for entry in d['entries'])
نحصل على مزيد من المعلومات :) من شأنها أن تظهر لك جميع الحقول المتعلقة بكل إدخال بطريقة مطبوعة جميلة (وهذا ما هو peprint for)
لذلك، لجلب جميع عناوين إدخالات الأخبار لدينا من هذه الخلاصة:
titles = [entry.title for entry in d['entries']
لذلك، العب مع ذلك. نأمل أن تكون بداية مفيدة
نصائح أخرى
أولا تحتاج إلى التحقق مواصفات RSS. وبعد وهنا هو تغذية المحلل. وبعد من المستحسن ان تبدا.