我想在单击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)
答案 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')]