没有合适的资源?快使用搜索试试~ 我知道了~
浅谈selenium如何应对网页内容需要鼠标滚动加载的问题
3 下载量 51 浏览量
2020-12-20
14:31:19
上传
评论 1
收藏 49KB PDF 举报
温馨提示
试读
1页
相信大家在selenium爬取网页的时候都遇到过这样的问题:就是网页内容需要用鼠标滚动加载剩余内容,而不是一次全部加载出网页的全部内容,这个时候如果要模拟翻页的时候就必须加载出全部的内容,不然定位元素会找不到,出现报错。 这里提供两种方法供大家参考 一,通过selenium模拟浏览器,然后设置浏览器高度足够长,最后延时使之能够将页面的内容都能够加载出来 import time from selenium import webdriver driver = webdriver.Firefox() driver.set_window_size(1000,30000) driver.get(url
资源详情
资源评论
资源推荐
浅谈浅谈selenium如何应对网页内容需要鼠标滚动加载的问题如何应对网页内容需要鼠标滚动加载的问题
相信大家在selenium爬取网页的时候都遇到过这样的问题:就是网页内容需要用鼠标滚动加载剩余内容,而不是一次全部加载
出网页的全部内容,这个时候如果要模拟翻页的时候就必须加载出全部的内容,不然定位元素会找不到,出现报错。
这里提供两种方法供大家参考这里提供两种方法供大家参考
一,通过selenium模拟浏览器,然后设置浏览器高度足够长,最后延时使之能够将页面的内容都能够加载出来
import time
from selenium import webdriver
driver = webdriver.Firefox()
driver.set_window_size(1000,30000)
driver.get(url)
time.sleep(5)
二,通过selenium模拟浏览器下拉操作
from selenium import webdriver
import time
browser.execute_script("window.scrollBy(0,3000)")
time.sleep(1)
browser.execute_script("window.scrollBy(0,5000)")
time.sleep(1)
browser.execute_script("window.scrollBy(0,8000)")
time.sleep(1)
补充知识:补充知识:针对懒加载如何实现针对懒加载如何实现selenium 滑动至页面底部滑动至页面底部page_source一次性包含全部网页内容一次性包含全部网页内容
有时网站使用了懒加载技术:只有在浏览器中纵向滚动条滚动到指定的位置时,页面的元素才会被动态加载。
注意,在加载之前,selenium的page_source是不会包含该页面的内容,page_source只包含加载出来的页面内容。
那么如何实现加载全部内容了,就需要模拟人滚动滚动条的行为,实现页面的加载
from selenium.webdriver.chrome.options import Options
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
def scroll_until_loaded(self):
check_height = self.browser.execute_script("return document.body.scrollHeight;")
while True:
self.browser.execute_script("window.scrollTo(0, document.body.scrollHeight);")
try:
self.wait.until(lambda driver: self.browser.execute_script("return document.body.scrollHeight;") > check_height)
check_height = self.browser.execute_script("return document.body.scrollHeight;")
except TimeoutException:
break
这里懒加载并不是一直有效, 当网速不好时,加载超过self.wait()时间, 页面还没加载出来时, 会认为全部加载完成, page_source
里面的代码就会是以前加载出来的, 所以执行翻页操作后, 要执行time.sleep(3), 等待网页加载, 更新html再获取网页源代码
以上这篇浅谈selenium如何应对网页内容需要鼠标滚动加载的问题就是小编分享给大家的全部内容了,希望能给大家一个参
考,也希望大家多多支持软件开发网。
您可能感兴趣的文章您可能感兴趣的文章:python中selenium操作下拉滚动条的几种方法汇总Python selenium 三种等待方式详解(必会)玩转python
selenium鼠标键盘操作(ActionChains)
weixin_38606202
- 粉丝: 1
- 资源: 951
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于matlab实现多车辆车辆路径问题,用遗传算法编程,保证可用.rar
- 基于matlab实现多层极限学习机实现手写体识别,准确率超过99%.rar
- 基于matlab实现电力系统最优潮流程序,可以应用于电力市场下的最优潮流计算 适合电力系统专业的同仁使用.rar
- 串行通信的通信协议串口协议串行通信的通信协议串口协议
- Vue构建交互式的单页面应用程序Vue构建交互式的单页面应用程序
- Spring Boot快速搭建和部署应用程序
- Redis开源的高性键值存储系统广泛应用于缓存、实时消息传递
- Qt跨平台的应用程序开发框架Qt跨平台的应用程序开发框架
- 单片机是集成处理器、存储器和输入输出设备
- 深度学习机器习方法模仿人脑神经网络深度学习机器习方法模仿人脑神经网络
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0