Wie crawlt der Python-Crawler den Inhalt zwischen span und span und speichert ihn jeweils im Wörterbuch?
phpcn_u1582
phpcn_u1582 2017-05-18 10:52:42
0
5
2143

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_u1582
phpcn_u1582

Antworte allen(5)
曾经蜡笔没有小新

其实还是很有简单的,你看这个还是有规律的,规律在于有分隔符|,我写了个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进行分割吧,后面的不写了。
如果有问题再交流。

给我你的怀抱

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

正确的标签内容就两个:

  • 房屋概况:

  • 46m²

巴扎黑

innerText

滿天的星座

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

黄舟

用pyquery吧

from pyquery import PyQuery as Q

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

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage