View Single Post
Som nevnt over kan se om kan om kan finne data i ajax,xhr,json request på side.
Det er annen måte det er og bruke Selenium Python.
Da får man med rendered JavaScript kan kombinere med beautifulsoup med og sende browser.page_source til BS for parsing.
Kan også la være og laste nettleser med --headless,
når man kun skal ha data vil ikke lasting av nettleser ha noen funksjon.

For gi et eksempel:

Kode

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
from bs4 import BeautifulSoup
import time

browser = webdriver.Chrome()
#---| Headless setup
#chrome_options = Options()
#chrome_options.add_argument("--headless")
#browser = webdriver.Chrome(chrome_options=chrome_options)
#---
url = 'https://howsecureismypassword.net/'
browser.get(url)
inputElement = browser.find_elements_by_class_name("password-input")[0]
inputElement.send_keys("123hello")
inputElement.send_keys(Keys.RETURN)
time.sleep(3)

# Give source code to BeautifulSoup
soup = BeautifulSoup(browser.page_source, 'lxml')
# Now can parse the rendred JavaScript from site
top_text = soup.select_one('.result__text.result__before')
crack_time = soup.select_one('.result__text.result__time')
bottom_text  = soup.select_one('.result__text.result__after')
print(top_text.text)
print(crack_time.text)
print(bottom_text.text)
time.sleep(3)
browser.close()

Kode

It would take a computer about
1 minute
to crack your password