невозможно проанализировать элемент h1 после execute_script () - PullRequest
1 голос
/ 28 мая 2019

Я пытаюсь удалить элемент 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)

1 Ответ

0 голосов
/ 28 мая 2019

Почему бы после вашего ожидания просто загрузить driver.page_source в BeautifulSoup?

#try:
#except: ....your code 
soup = BeautifulSoup(driver.page_source, 'lxml')
names = [item.text for item in soup.select('div.name')]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...