Seleniung webdriver PhantomJS를 사용하여 span 내부에 텍스트를 가져 오려고했습니다. 내 코드는 다음과 같습니다.
href = driver.find_elements_by_xpath("//a[@class='_8mlbc _vbtk2 _t5r8b']")
for rt in href:
rt.click()
if href:
name = driver.find_elements_by_xpath("//*[@class='_99ch8']/span").text
# name = driver.find_element_by_xpath("//li[a[@title='nike']]/span").text
print(name)
HTML에서 :
<li class="_99ch8"><a class="_4zhc5 notranslate _ebg8h" title="nike" href="/nike/">nike</a><span><span>Nobody believed a boy from Madeira would make it to the stars. Except the boy from Madeira. </span><br><a href="/explore/tags/nike/">#nike</a><span> </span><a href="/explore/tags/soccer/">#soccer</a><span> </span><a href="/explore/tags/football/">#football</a><span> </span><a href="/explore/tags/cr7/">#CR7</a><span> </span><a href="/explore/tags/cristiano/">#Cristiano</a><span> </span><a href="/explore/tags/cristianoronaldo/">#CristianoRonaldo</a><span> </span><a href="/explore/tags/mercurial/">#Mercurial</a><span> </span><a href="/explore/tags/justdoit/">#justdoit</a></span></li>
스팬 내부에 텍스트를 가져오고 싶습니다.
XPath
허용되지 않는 옵션이므로 텍스트 노드를 반환 하는 표현식을 사용할 수 없습니다. selenium
선택기는 WebDriver
요소 만 반환해야 합니다.
또한의 클래스 이름은 li
동적 으로 보이므로 title
대신 자식 앵커의 속성 값을 사용할 수 있습니다 .
driver.find_element_by_xpath("//li[a[@title='nike']]/span").text
최신 정보
완전한 코드 :
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait as wait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get('https://www.instagram.com/nike/')
links = driver.find_elements_by_xpath('//a[contains(@href, "/?taken-by=nike")]')
for link in links:
link.click()
wait(driver, 5).until(EC.presence_of_element_located((By.XPATH, "//div/article")))
print(driver.find_element_by_xpath("//li[a[@title='nike']]/span").text)
driver.find_element_by_xpath("//div[@role='dialog']/button").click()
업데이트 # 2
각 이미지를 열지 않고도 동일한 텍스트를 간단히 잡을 수도 있습니다.
links = driver.find_elements_by_xpath('//img')
for img in links:
print(img.get_attribute('alt'))
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다