Heim  >  Fragen und Antworten  >  Hauptteil

Wie crawlt der Python-Crawler den Inhalt zwischen span und span und speichert ihn jeweils im Wörterbuch?

Ich möchte die Hausprofile separat erfassen und als unabhängige Spalten im Wörterbuch speichern, aber es gibt keine Möglichkeit, die Inline-Elemente direkt mithilfe einer for-Schleife zu extrahieren.
Das ist mein Code:

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

Dies ist der HTML-Code der Webseite:

<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_u15822710 Tage vor2089

Antworte allen(5)Ich werde antworten

  • 曾经蜡笔没有小新

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

    其实还是很有简单的,你看这个还是有规律的,规律在于有分隔符|,我写了个DEMO

    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()

    通过get_text()得到内在所有内容,然后去除空格。后面你就用split进行分割吧,后面的不写了。
    如果有问题再交流。

    Antwort
    0
  • 给我你的怀抱

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

    我感觉这个html代码写错了呢,标签的内容文本在标签外面

    正确的标签内容就两个:

    • 房屋概况:

    • 46m²

    Antwort
    0
  • 巴扎黑

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

    innerText

    Antwort
    0
  • 滿天的星座

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

    你这种情况,我觉得用 for 循环加上正则表达式是最方便的,如果所有模版都是这样固定的话

    Antwort
    0
  • 黄舟

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

    用pyquery吧

    from pyquery import PyQuery as Q

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

    Antwort
    0
  • StornierenAntwort