الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Help with BeautifulSoup Tree and Recursion

بدأه Khaled_Sulaiman في 19 يوليو 2010 · 2 رد · 663 مشاهدة · في لغة Python
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

سلام

عندي مشكلة بال BeautifulSoap and Recursion

الحين استخدمت BeautifulSoap to parse المواقع وبعدين استخدمت Recursion عشان امشي على كل ال tree واستخرج فقط ال text

المشكلة عندي بال Recursion لانه المتغير (Text) تتغير قيمته كل مره أنادي فيها الداله. كيف احل المشكله هذي واحتفظ بالكلمات في نتغير واحد وارجعه للبرنامج؟

شكرا

import re
import urllib2
from BeautifulSoup import BeautifulSoup, NavigableString

html = ['<html><head><title>Page title</title></head>',
       '<body><p id="firstpara" align="center">This is paragraph <b>one</b>.',
       '<p id="secondpara" align="blah">This is paragraph <b>two</b>.',
       '</html>']


def ParseContent(current):

    Text =""

    if hasattr(current,'contents'):
        for next in current.contents:
            ParseContent(next)

    if isinstance(current, NavigableString):
        print str(current)
        Text += str(current)
    return Text


soup = BeautifulSoup(''.join(html))
Page_Text = ParseContent(soup)
print "Text after function call: ", Page_Text
#2

سلام عليكم

جرب تستخدم findAll مع تحديد text filter مثلا كالتالى

soup.findAll(text=lambda x: x)
[u'Page title', u'This is paragraph ', u'one', u'.', u'This is paragraph ', u'two', u'.']
1
(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#3

شكرا أستاذ أحمد.. والله هذي طريقه أسهل وأسرع.. الله يجزاك خير مشكور أخوي

مواضيع مشابهة