2010-07-21 5 views
7

का उपयोग कर फेसबुक जैसी लिंक सारांश (शीर्षक, सारांश, प्रासंगिक छवियां) पुनर्प्राप्त करना मैं उस कार्यक्षमता को दोहराना चाहता हूं जो फेसबुक एक लिंक को पार्स करने के लिए उपयोग करता है। जब आप अपनी फेसबुक स्थिति में एक लिंक जमा करते हैं, तो उनका सिस्टम बाहर निकलता है और सुझाए गए title, summary और अक्सर उस पृष्ठ से एक या अधिक प्रासंगिक image s पुनर्प्राप्त करता है, जिससे आप थंबनेल चुन सकते हैं।पायथन

मेरे आवेदन को पायथन का उपयोग करके इसे पूरा करने की आवश्यकता है, लेकिन मैं किसी भी प्रकार की मार्गदर्शिका, ब्लॉग पोस्ट या अन्य डेवलपर्स के अनुभव के लिए खुला हूं जो इससे संबंधित है और मुझे यह समझने में मदद कर सकता है कि इसे कैसे पूरा किया जाए। ।

मैं वास्तव में स्पष्ट रूप से कहें तो बस में कूदने से पहले अन्य लोगों के अनुभव से सीखते हैं चाहते हैं

, जब एक वेब पेज का URL को देखते हुए, मैं पुनः प्राप्त करने में सक्षम होना चाहते:

  1. शीर्षक: शायद केवल <title> टैग लेकिन संभवतः <h1>, सुनिश्चित नहीं है।
  2. पृष्ठ का एक अनुच्छेद सारांश।
  3. प्रासंगिक छवियों का एक समूह जिसे थंबनेल के रूप में उपयोग किया जा सकता है। (मुश्किल हिस्सा बैनर या गोलाकार कोनों जैसे अप्रासंगिक छवियों को फ़िल्टर करना है)

मुझे इसे स्वयं लागू करना पड़ सकता है, लेकिन मैं कम से कम जानना चाहता हूं कि अन्य लोग इस तरह के कार्यों को कैसे कर रहे हैं।

उत्तर

2

BeautifulSoup इनमें से अधिकांश को पूरा करने के लिए उपयुक्त है।

मूल रूप से, आप बस soup वस्तु को प्रारंभ, तो निकालने के लिए क्या आप में रुचि रखते हैं निम्नलिखित की तरह कुछ करना:

title = soup.findAll('title') 
images = soup.findAll('img') 

फिर आप urllib2 का उपयोग कर अपने url के आधार पर छवियों में से प्रत्येक डाउनलोड कर सकते हैं।

शीर्षक काफी सरल है, लेकिन छवियां थोड़ी अधिक कठिन हो सकती हैं क्योंकि आपको उन पर प्रासंगिक आंकड़े प्राप्त करने के लिए प्रत्येक को डाउनलोड करना होगा। शायद आप आकार और रंगों की संख्या के आधार पर अधिकांश छवियों को फ़िल्टर कर सकते हैं? एक उदाहरण के रूप में गोलाकार कोनों में छोटे होने जा रहे हैं और आम तौर पर केवल 1-2 रंग होते हैं।

पृष्ठ सारांश का सवाल है, कि थोड़ा अधिक कठिन हो सकता है, लेकिन मैं कुछ इस तरह कर रहा हूँ:

  1. मैं BeautifulSoup का उपयोग से सभी शैली, स्क्रिप्ट, प्रपत्र, और सिर ब्लॉकों को हटाने के लिए html का उपयोग करके: .findAll, फिर .extract
  2. मैं का उपयोग कर शेष पाठ हड़पने: .join(soup.findAll(text = True))

अपने आवेदन में, शायद आप पृष्ठ सारांश के रूप में इस "text" सामग्री इस्तेमाल कर सकते हैं?

मुझे आशा है कि इस मदद करता है।

+3

BeautifulSoup अच्छी तरह से अजगर 3.1 पर समर्थित नहीं है, और इसके मूल लेखक अब और ज्यादा विकास नहीं करता है। आप शायद lxml.html और/या html5lib का उपयोग बेहतर करते हैं (बाद वाले को सुंदर सूप लेखक द्वारा अनुशंसित किया जाता है)। – lunaryorn

+0

भविष्य के संदर्भ के लिए जानना अच्छा है। धन्यवाद! –

1

यहाँ एक पूर्ण समाधान है: https://github.com/svven/summary

>>> import summary 
>>> s = summary.Summary('http://stackoverflow.com/users/76701/ram-rachum') 
>>> s.extract() 
>>> s.title 
u'User Ram Rachum - Stack Overflow' 
>>> s.description 
u'Israeli Python hacker.' 
>>> s.image 
https://www.gravatar.com/avatar/d24c45635a5171615a7cdb936f36daad?s=128&d=identic 
on&r=PG 
>>> 
+0

दुर्भाग्यवश, यह प्रोजेक्ट पाइथन 3 का समर्थन नहीं करता है। – illagrenan

+0

@illagrenan पीआर का स्वागत है – ducu