Я пытаюсь царапать элемент h1 после щелчка ссылки JS. Поскольку я новичок в python, selenium и beautifulsoup, я не уверен, изменило ли то, что последовало за выполнением JS, способ работы синтаксического анализа, или я просто неправильно захватил новый URL-адрес. Все, что я пробовал, вернуло что-то другое, от Incompleteread, объект Nonetype не вызывается, [-1, None, -1, None] до простого None. Я просто не уверен, куда идти после переменной контейнеров, которую я оставил так, чтобы просто вытащить html.
Все, что я хочу извлечь из этого, это имя
<div class = "name"> <h1 itemprop = "name"> Nicolette Shea </h1>
star_button = driver.find_element_by_css_selector("a[href*='/pornstar/']")
click = driver.execute_script('arguments[0].click();', star_button)
wait = WebDriverWait(driver, 5)
try:
wait.until(EC.url_contains('-'))
except TimeOutException:
print("Unable to load")
new_url = driver.current_url
page = pUrl(new_url)
p_read = page.read()
page.close()
p_parse = soup(p_read, 'html.parser')
containers = p_parse.find('div', {'class' : 'name'})
print(containers)
@QHarr pUrl — это urllib.request, urlopen как pUrl
Почему бы после ожидания просто не загрузить driver.page_source в BeautifulSoup?
#try:
#except: ....your code
soup = BeautifulSoup(driver.page_source, 'lxml')
names = [item.text for item in soup.select('div.name')]
что такое pUrl, пожалуйста?