关于python中selenium获取不到跳转页面的当前url或是HTML问题解决
问题详述:
在selenium爬取带有js渲染的网页时,当某些网页点击跳转新的标签页后,通过采用url = browser.current_url来获取当前点击跳转后页面的url或是html时,对于某些网站可以获取,但是对于大部分网站都获取不了,只能获取主页面的url或是html代码;
问题可能是因为,对于某些网站来说,你即使点击了,或是输入回车键了,但是代码还停留来源主页,要进行代码中的切换;
问题解决:
网上查了好多,大多是获取点击不打开新标签的网页,(估计没有人那么闲,直接点击打开新标签后在进行selenium操作就好了,可是总会有各种各样的需求)其实问题解决也很简单,把用selenium切换到当前标签页:
代码段:
cssSelect = 'body > div.app.app--light'
wait = WebDriverWait(browser,10)
wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,cssSelect)))#等待加载
browser.find_element_by_css_selector(cssSelect).click()#用css选择器,找到元素按钮后点击,打开新标签
browser.switch_to.window(browser.window_handles[1])#切换当前页面标签
rul = browser.current_url#获取新标签url
html = browser.page_source#获取新标签html