1
votes

Essayer d'extraire du texte d'une certaine classe span

J'ai essayé d'imprimer le texte trouvé dans une balise hors d'un site Web. Tout ce que j'ai essayé et qui ne me donne pas d'erreur est retourné vide. n'imprimant absolument rien.

Voici mon code:

<span class="h1">
<span id="streetName" class="header_bold propStreetAddress">
3632
Stokes Drive</span><span>, Sarasota, FL 34232</span>
</span>

Voici la classe span que j'essaie d'extraire:

import time
import requests
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
import ssl
from twilio.rest import Client
from twilio.rest import TwilioRestClient
browser = webdriver.Chrome()
browser.get(('https://www.hubzu.com/property/9007091467618-3632-Stokes-Drive-Sarasota-FL-34232'))
propertyname = browser.find_element_by_css_selector('span.h1')
propertyName1 = propertyname.text

print(propertyName1)


0 commentaires

3 Réponses :



0
votes

Ce qui se passe, c'est qu'il y a deux balises span avec la classe h1 . Le premier est caché. C'est pourquoi vous obtenez le résultat vide car find_element renvoie le premier élément trouvé par le localisateur.

Essayez ce qui suit:

browser.get(('https://www.hubzu.com/property/9007091467618-3632-Stokes-Drive-Sarasota-FL-34232'))
propertyname = browser.find_element_by_css_selector('div.row.header-top-navigation span.h1')
print(propertyname.text)


0 commentaires

0
votes

Cela ne vaut peut-être pas pour tout, mais dans ce cas, vous pouvez simplement utiliser des requêtes et bs4

from bs4 import BeautifulSoup as bs
import requests

r = requests.get('https://www.hubzu.com/property/9007091467618-3632-Stokes-Drive-Sarasota-FL-34232', headers = {'User-Agent' : 'Mozilla/5.0'})
soup = bs(r.content, 'lxml')
print(soup.select_one('.img-responsive')['alt'])


0 commentaires