[python] HTML 소스에 액세스하는 Python Selenium

Python과 함께 Selenium 모듈을 사용하여 변수에서 HTML 소스를 얻으려면 어떻게 해야합니까?

다음과 같이하고 싶었습니다.

from selenium import webdriver

browser = webdriver.Firefox()
browser.get("http://example.com")
if "whatever" in html_source:
    # Do something
else:
    # Do something else

어떻게 할 수 있습니까? HTML 소스에 액세스하는 방법을 모르겠습니다.



답변

다음 page_source속성 에 액세스해야 합니다.

from selenium import webdriver

browser = webdriver.Firefox()
browser.get("http://example.com")

html_source = browser.page_source
if "whatever" in html_source:
    # do something
else:
    # do something else


답변

Selenium2Library를 사용하면 다음을 사용할 수 있습니다. get_source()

import Selenium2Library
s = Selenium2Library.Selenium2Library()
s.open_browser("localhost:7080", "firefox")
source = s.get_source()


답변

driver.page_source 는 페이지 소스 코드를 얻는 데 도움이됩니다. 페이지 소스에 텍스트가 있는지 여부를 확인할 수 있습니다.

from selenium import webdriver
driver = webdriver.Firefox()
driver.get("some url")
if "your text here" in driver.page_source:
    print('Found it!')
else:
    print('Did not find it.')

페이지 소스를 변수에 저장하려면 driver.get 뒤에 아래 줄을 추가하십시오 .

var_pgsource=driver.page_source

if 조건을 다음으로 변경하십시오 .

if "your text here" in var_pgsource:


답변

페이지 소스를 사용하면 전체 HTML 코드를 얻을 수 있습니다.
따라서 먼저 데이터를 검색하거나 요소를 클릭하는 데 필요한 코드 또는 태그 블록을 결정합니다.

options = driver.find_elements_by_name_("XXX")
for option in options:
    if option.text == "XXXXXX":
        print(option.text)
        option.click()

이름, XPath, ID, 링크 및 CSS 경로로 요소를 찾을 수 있습니다.


답변

urllib에 사용할 URL 을 가져 오는 것에 대한 질문에 답하려면 다음 JavaScript 코드를 실행하십시오.

url = browser.execute_script("return window.location;")


답변

단순히 WebDriver개체 를 사용하고 해당 @property필드 를 통해 페이지 소스 코드에 액세스 할 수 있습니다 page_source.

이 코드 스 니펫을 사용해보십시오 🙂

from selenium import webdriver
driver = webdriver.Firefox('path/to/executable')
driver.get('https://some-domain.com')
source = driver.page_source
if 'stuff' in source:
    print('found...')
else:
    print('not in source...')


답변

from bs4 import BeautifulSoup
from selenium import webdriver

driver = webdriver.Chrome()
html_source_code = driver.execute_script("return document.body.innerHTML;")
html_soup: BeautifulSoup = BeautifulSoup(html_source_code, 'html.parser')

이제 BeautifulSoup 기능을 적용하여 데이터를 추출 할 수 있습니다.