셀레니움에서 웹 페이지의 모든 스크립트 태그를 가져오는 방법은?
_____Q4: 동적으로 로딩된 스크립트도 모두 가져오나요?
A4: 셀레니움은 브라우저 렌더링 후 DOM 상태를 반영하므로, 기본적으로 동적 로딩된 스크립트 태그도 포함됩니다. 다만, 스크립트 로딩이 완료될 때까지 명시적으로 기다려야 할 경우가 많습니다.
예:
```python
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
wait = WebDriverWait(driver, 10)
wait.until(EC.presence_of_element_located((By.TAG_NAME, "script")))
```
---
Q5: 특정 조건(예: `type="application/ld+json"` 등)의 스크립트만 선택해서 가져오려면?
A5: CSS 선택자 혹은 XPath를 사용해 조건에 맞는 태그만 선택할 수 있습니다.
예:
```python
json_ld_scripts = driver.find_elements("css selector", "script[type='application/ld+json']")
for script in json_ld_scripts:
print(script.text)
```
---
Q6: 스크립트 태그를 가져올 때 주의사항이 있나요?
A6:
- `get_attribute('outerHTML')`는 태그 전체를 문자열로 가져올 수 있어 디버깅에 유용합니다.
- 내부 스크립트가 매우 클 경우 `text`를 읽는 데 시간이 걸릴 수 있습니다.
- `src`가 없는 경우 내부 인라인 스크립트임을 의미합니다.
- 페이지의 스크립트가 AJAX 등으로 동적 삽입된다면, 적절히 대기 후에 탐색하세요.
---
이 방법들을 활용하면 셀레니움으로 웹 페이지 내 모든 스크립트 태그와 그 내용을 손쉽게 가져올 수 있습니다.
웹 페이지에서 모든 `