python爬取动态加载页面,selenium实现滚动到底

这篇具有很好参考价值的文章主要介绍了python爬取动态加载页面,selenium实现滚动到底。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近的写爬虫的时候遇到一些问题,就是页面是动态加载的,抓包的时候发现页码不规律,于是想到用selenium控制浏览器自动拖拽滚动到底,找了好多方法直接是加载js的不太好用,看到一个博主的能用方法,我把他贴一下。

selenium实现无限滚动、循环滚动到底


这是我自己更新的代码,我发现一个小问题,尽管拖拽了页面到底部不再加载了,但是我请求返回的数据还是最初没有(点击加载)的页面的数据,获取不到动态加载后的数据,之前我遇到过解决方法,现在忘记了

import time
import lxml.html
from selenium import webdriver

driver = webdriver.Chrome()
driver.get(url='https://www.nanjixiong.com/forum-228-1.html')
# 页面最大
driver.maximize_window()
# 定义一个初始值
temp_height = 0
while True:
    # 循环将滚动条下拉
    driver.execute_script("window.scrollBy(0,1000)")
    # sleep一下让滚动条反应一下
    time.sleep(0.05)
    # 获取当前滚动条距离顶部的距离
    check_height = driver.execute_script(
        "return document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;")
    # 如果两者相等说明到底了
    if check_height == temp_height:
        driver.refresh()
        # 在这里获取网页源代码
        html_data = driver.page_source
        time.sleep(1)
        # print(html_data)
        break
    temp_height = check_height
    print(check_height)

driver.quit()
metree = lxml.html.etree
# 获取数据对象
parser = metree.HTML(html_data, metree.HTMLParser())
# 解析数据
element_list = parser.xpath('//ul[@class="ml waterfall cl"]/li')
print(len(element_list))

python爬取动态加载页面,selenium实现滚动到底

 看li标签新加载的元素已经不止18个了

python爬取动态加载页面,selenium实现滚动到底

先留着,后续有解决方法了再更新本文

 文章来源地址https://www.toymoban.com/news/detail-505072.html

到了这里,关于python爬取动态加载页面,selenium实现滚动到底的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JavaScript动态渲染页面爬取——Selenium的使用

    JavaScript动态渲染得页面不止Ajax一种。例如,有些页面的分页部分由JavaScript生成,而非原始HTML代码,这其中并不包含Ajax请求。还有类似淘宝这种页面,即使是Ajax获取的数据,其Ajax接口中也含很多加密参数,使我们难以直接找出规律,也很难直接通过分析Ajax爬取数据。 Pyt

    2024年04月11日
    浏览(45)
  • selenium 动态爬取页面使用教程以及使用案例

    Selenium是一款功能强大的自动化Web浏览器交互工具。它可以模拟真实用户在网页上的操作,例如点击、滚动、输入等等。Selenium可以爬取其他库难以爬取的网站,特别是那些需要登录或使用JavaScript的网站。Selenium可以自动地从Web页面中提取数据,例如价格、评论、评分等等。

    2024年02月09日
    浏览(53)
  • 【Java-Crawler】爬取动态页面(WebMagic、Selenium、ChromeDriver)

    在上一篇说WebMagic框架的时候( 一文学会WebMagic爬虫框架),提到了WebMagic仅能解析静态页面,满足不了小编的爬虫需求了,小编现在要爬取动态的页面,需要爬取JavaScript被解析后的页面了。 “多的不说,少的不辣”,先直接给出本篇博客需要的资源和依赖。 根据GPT的答案所

    2024年02月13日
    浏览(45)
  • Flutter笔记:滚动之-无限滚动与动态加载的实现

    Flutter笔记 无限滚动与动态加载的实现 作者 : 李俊才 (jcLee95):https://blog.csdn.net/qq_28550263 邮箱 : 291148484@163.com 本文地址 :https://blog.csdn.net/qq_28550263/article/details/133342307 本文还有另外一个版本,基于GetX简单状态管理状态。地址为:https://jclee95.blog.csdn.net/article/details/13336

    2024年02月07日
    浏览(44)
  • python爬虫实战 scrapy+selenium爬取动态网页

    最近学习了scrapy爬虫框架,想要找个目标练练手。由于现在很多网页都是动态的,因此还需要配合selenium爬取。本文旨在记录这次学习经历,如有疑问或不当之处,可以在评论区指出,一起学习。 对scrapy不了解的同学可以阅读这篇文章 爬虫框架 Scrapy 详解,对scrapy框架介绍的

    2024年02月07日
    浏览(83)
  • react结合js获取屏幕鼠标滚动等距离实现页面懒加载

            也叫延迟加载,指的是在长网页中延迟加载内容或图像,是一种很好优化网页性能的方式。在滚动屏幕之前,可视化区域之外的内容不会进行加载,在屏幕滚动距离底部到一定距离时才加载。这样网页的加载速度更快,减少了服务器的负载。         懒加载适

    2024年02月10日
    浏览(43)
  • 微信小程序 滚动到底部加载新的数据 之后滚动到顶部

    1.配置到底部监听 在app.json的window里面加入 里面的300表示距离底部300rpx触发onReachBottom事件 默认50rpx 2.在数据列表的js页面

    2024年02月12日
    浏览(40)
  • Python网络爬虫逆向分析爬取动态网页、使用Selenium库爬取动态网页、​编辑将数据存储入MongoDB数据库

    目录 逆向分析爬取动态网页 了解静态网页和动态网页区别 1.判断静态网页  2.判断动态网页  逆向分析爬取动态网页 使用Selenium库爬取动态网页 安装Selenium库以及下载浏览器补丁 页面等待  页面操作 1.填充表单 2.执行JavaScript 元素选取 Selenium库的find_element的语法使用格式如下

    2024年02月15日
    浏览(119)
  • Python爬取东方财富网任意股票任意时间段的Ajax动态加载股票数据

    最近由于需求想爬取以下东方财富网的股票数据,但是发现没有想象那么简单,接下来我会讲述一下我遇到的问题以及是如何解决,最后成功的爬出了想要的数据。 首先我们F12打开东方财富网网页源码,以指南针(300803)为例: 我们先点击 网络 ,再点击 300803.html ,再选择右边

    2024年02月06日
    浏览(45)
  • Python Selenium.WebDriver 最强详解页面加载策略

    在通过Selenium加载一个网页时,Selenium都会等待页面加载完了才会运行下面的代码,这是因为 webdriver.get 方法会阻塞直到网页全部加载完成。 通常如果当页面加载花费大量时间时,可能是加载了很多外部资源「如:图像、css」,又或则是浏览的是国外网站,使用的网络环境差

    2023年04月22日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包