python下用selenium的webdriver包如何在执行完点击下一页后没有获得下一页新打开页面的html源代码
Posted 田智凯
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python下用selenium的webdriver包如何在执行完点击下一页后没有获得下一页新打开页面的html源代码相关的知识,希望对你有一定的参考价值。
问题描述:
新打开的页面url不变,只是网页内容变了,然后使用drive.page_source得到的都是第一页的html代码,并不是当前页面的html代码。
1.
原因:webdriver仍默认在原页面下获取标签等信息;
解决方法:采用切换页面句柄的方式解决;
2.
原因:缺少time.sleep(1),如果短了就无法正常获取数据,所以检查适当位置是否有停留
def get_info(num): driver.get(url) driver.implicitly_wait(10) # 隐式等待n秒,解释JavaScript是需要时间的,如果短了就无法正常获取数据,如果长了浪费时间;implicitly_wait()给定时间智能等待 driver.find_element_by_id(‘pageNum‘).clear()#清除输入框 driver.find_element_by_xpath(‘//*[@id="pageNum"]‘).send_keys(num)#输入页数 driver.find_element_by_xpath(‘//*[@id="judgeFlag"]/a‘).click()#单击确认框 html = driver.page_source return html
解决方法:
加time.sleep(1) 注意:如果sleep时间短的话也不行
def get_info(num): driver.get(url) driver.implicitly_wait(10) # 隐式等待n秒,解释JavaScript是需要时间的,如果短了就无法正常获取数据,如果长了浪费时间;implicitly_wait()给定时间智能等待 driver.find_element_by_id(‘pageNum‘).clear()#清除输入框 driver.find_element_by_xpath(‘//*[@id="pageNum"]‘).send_keys(num)#输入页数 driver.find_element_by_xpath(‘//*[@id="judgeFlag"]/a‘).click()#单击确认框 time.sleep(1)#一定要停一下,否则加载不出来一直输出第一页 html = driver.page_source return html
以上是关于python下用selenium的webdriver包如何在执行完点击下一页后没有获得下一页新打开页面的html源代码的主要内容,如果未能解决你的问题,请参考以下文章
python下用selenium的webdriver包如何在执行完点击下一页后没有获得下一页新打开页面的html源代码
早上在linux下用selenium启动Chrome时出现问题: