无法在execute_script()之后解析h1元素

时间:2019-05-27 22:39:58

标签: python python-3.x selenium web-scraping beautifulsoup

我想在单击JS链接后抓取h1元素。因为我是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 :(得分:0)

为什么不等一下就简单地将driver.page_source加载到BeautifulSoup中?

#try:
#except: ....your code 
soup = BeautifulSoup(driver.page_source, 'lxml')
names = [item.text for item in soup.select('div.name')]