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>
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
.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.
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²
innerText
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
用pyquery吧
from pyquery importer PyQuery en tant que Q
Q(text).find('.house-info li').text()