Maison  >  Questions et réponses  >  le corps du texte

Comment le robot d'exploration Python explore-t-il le contenu entre span et span et le stocke-t-il respectivement dans le dictionnaire ?

Je souhaite capturer les profils de maison séparément et les stocker dans le dictionnaire sous forme de colonnes indépendantes, mais il n'existe aucun moyen d'extraire directement les éléments en ligne à l'aide d'une boucle for.
Voici mon code :

soup.select('.house-info li')[1].text.strip()

Voici le code html de la page web :

<li><span class="info-tit">房屋概况:</span>住宅
                        <span class="splitline">|</span>1室1厅1卫
                        
                        <span class="splitline">|</span><span title="建筑面积">46m²</span>
                        
                        <span class="splitline">|</span> (高层)/共18层
                        
                        <span class="splitline">|</span>南北
                        
                        <span class="splitline">|</span> 豪华装修
                        
                    </li>
phpcn_u1582phpcn_u15822732 Il y a quelques jours2112

répondre à tous(5)je répondrai

  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-18 10:54:42

    En fait, c'est très simple. Vous pouvez voir qu'il y a un modèle là-dedans. Le modèle se trouve dans le séparateur |. J'ai écrit une DÉMO

    .
    something  = '''<li><span class="info-tit">房屋概况:</span>住宅  <span class="splitline">|</span>1室1厅1卫<span class="splitline">|</span><span title="建筑面积">46m²</span><span class="splitline">|</span> (高层)/共18层
    
                            <span class="splitline">|</span>南北
    
                            <span class="splitline">|</span> 豪华装修
    
                        </li>''';
    
    soup  = BeautifulSoup(something, 'lxml')
    plaintext = soup.select('li')[0].get_text().strip()

    Récupérez tout le contenu interne via get_text(), puis supprimez les espaces. Vous pouvez utiliser split pour le diviser plus tard, et je n’écrirai pas le reste.
    Si vous avez des questions, veuillez communiquer.

    répondre
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-18 10:54:42

    Je pense que ce code html est mal écrit, le texte du contenu de l'étiquette est en dehors de l'étiquette

    Il n'y a que deux contenus de balises corrects :

    • Aperçu de la maison :

    • 46m²

    répondre
    0
  • 巴扎黑

    巴扎黑2017-05-18 10:54:42

    innerText

    répondre
    0
  • 滿天的星座

    滿天的星座2017-05-18 10:54:42

    Dans votre cas, je pense qu'il est plus pratique d'utiliser une boucle for plus des expressions régulières, si tous les modèles sont corrigés comme ceci

    répondre
    0
  • 黄舟

    黄舟2017-05-18 10:54:42

    用pyquery吧

    from pyquery importer PyQuery en tant que Q

    Q(text).find('.house-info li').text()

    répondre
    0
  • Annulerrépondre