一个python网络爬虫关于selenium页面滑动的简单案例
需求如下:
用selenium访问链家网站长沙新房1-5页的数据,并保存下来。滑动,然后点击翻页翻页数据,并保存下来
目标网站:https://cs.fang.lianjia.com/loupan/
过程要求使用面向对象的写法。

代码示例:

from selenium import webdriver
from selenium.webdriver.common.by import By
import time# 定义类
class LianJia(object):def __init__(self):self.driver = webdriver.Chrome()# 打开页面self.driver.get('https://cs.fang.lianjia.com/loupan/')def clear_driver(self):# 关闭驱动self.driver.close()self.driver.quit()# 代码核心部分def scroll(self):while True:# 滑动之前的页面高度document = self.driver.execute_script('return document.body.scrollHeight;')time.sleep(2)# 滑动页面self.driver.execute_script(f'window.scrollTo(0,{document})')time.sleep(2)# 滑动之后的页面高度document2 = self.driver.execute_script('return document.body.scrollHeight;')# 比较滑动前与滑动后的高度if document == document2:break# 定义翻页函数def up_page(self):time.sleep(1)# 点击下一页self.driver.find_element(By.XPATH,'//*[text()="下一页"]').click()# 定义保存页面源码函数def save_page(self, n=1):time.sleep(2)# 保存数据with open(f'第{n}页.html', 'w', encoding='utf-8') as f:f.write(self.driver.page_source)# 定义总的执行函数def run(self):try:self.save_page()  # 第一页for n in range(2, 6):  # 第二三四五页self.scroll()self.up_page()self.save_page(n)except Exception as e:print(e)finally:self.clear_driver()if __name__ == '__main__':lianjia = LianJia()lianjia.run()

获取页面源码则对浏览器驱动对象self.driver调用page_source属性。
执行JavaScript代码使用execute_script() 方法。

其中还涉及一点关于翻页的简单的JavaScript代码语句:
document.body.scrollHeight表示获取页面高度,
先获取页面高度,然后使用将页面向下翻动该数量的高度,然后再获取一次页面高度。如果页面高度此时没有发生变化,即判断刚刚的高度等于现在的高度,则说明已经翻到底了,跳出while循环,可以进一步去定位到“下一页”按钮处的element,并使用click() 方法点击。
window.scrollTo(x,y) 表示页面的滑动,滑动到指定位置,这里x轴无需滑动,则将x轴写为0,y轴写入要滑到的位置。
window.scrollBy(x,y) 表示滑动一定单位距离。

这样,翻动并点击的一个简单案例就实现啦。祝您学习顺利!

python爬虫selenium页面滑动案例相关推荐

  1. Python爬虫-Selenium(1)

    Python爬虫-Selenium(1) @(博客)[python, 爬虫, selenium, Python] Python爬虫-Selenium(1) 前言 前期准备 基础使用 进阶使用 浏览器操 ...

  2. 基于python爬虫————静态页面和动态页面爬取

    基于python爬虫----静态页面和动态页面爬取 文章目录 基于python爬虫----静态页面和动态页面爬取 1. 爬虫的原理 2. 用正则表达式匹配获取数据 3. 页面源码解析 4. 通过req ...

  3. [Python爬虫] Selenium+Phantomjs动态获取CSDN下载资源信息和评论

    前面几篇文章介绍了Selenium.PhantomJS的基础知识及安装过程,这篇文章是一篇应用.通过Selenium调用Phantomjs获取CSDN下载资源的信息,最重要的是动态获取资源的评论,它是 ...

  4. [Python爬虫] Selenium实现自动登录163邮箱和Locating Elements介绍

    前三篇文章介绍了安装过程和通过Selenium实现访问Firefox浏览器并自动搜索"Eastmount"关键字及截图的功能.而这篇文章主要简单介绍如何实现自动登录163邮箱,同时 ...

  5. [python爬虫] Selenium常见元素定位方法和操作的学习介绍(转载)

    转载地址:[python爬虫] Selenium常见元素定位方法和操作的学习介绍 一. 定位元素方法 官网地址:http://selenium-python.readthedocs.org/locat ...

  6. Python爬虫 Selenium实现自动登录163邮箱和Locating Elements介绍

    Python爬虫视频教程零基础小白到scrapy爬虫高手-轻松入门 https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.482434a6E ...

  7. python爬虫实战——猫眼电影案例

    python爬虫实战--猫眼电影案例 ·背景   笔者上一篇文章<基于猫眼票房数据的可视化分析>中爬取了猫眼实时票房数据,用于展示近三年电影票房概况.由于数据中缺少导演/演员/编剧阵容等信 ...

  8. Python 爬虫 Selenium 基本使用

    Python 爬虫 Selenium 基本使用 1. 基础知识 1.1 下载浏览器驱动 1.2 帮助文档 2. 浏览器操作 2.1 浏览器导航 2.2 窗口和选项卡 2.3 Frames and If ...

  9. [Python爬虫] Selenium实现自己主动登录163邮箱和Locating Elements介绍

            前三篇文章介绍了安装过程和通过Selenium实现訪问Firefox浏览器并自己主动搜索"Eastmount"keyword及截图的功能.而这篇文章主要简介怎样实现 ...

最新文章

  1. Visualizing A Neural Machine Translation Model (Mechanics of Seq2seq Models With Attention)
  2. ios 网络请求后 Crash
  3. [转]C#与数据结构--树论--平衡二叉树(AVL Tree)
  4. java svg 读取dom结构_SVG基础以及使用Javascript DOM操作SVG
  5. Sphinx全文检索引擎测试
  6. 带你看清梦饷集团如何成为上海在线新经济四小龙
  7. Python-OpenCV人脸检测(代码)
  8. springboot整合sentinel
  9. 计算机操作知识试题及答案真题,计算机操作系统期末考试题及答案
  10. twaver html5,twaver-html5-1.5.9---2D
  11. android 跑马灯带图片,Android自定义跑马灯效果(适合任意布局)
  12. BCH5月硬分叉,如果做成了支付,会超越BTC吗?
  13. 计算机常用的启动方法有,加快电脑开机、运行的常用手段
  14. hotmail邮箱设置
  15. 中国20顶级富豪惊人挥霍排行榜 仅一家IT老板
  16. 解决问题就像剥洋葱,解决的关键是基础知识
  17. 你想成为一个什么样的面试官?
  18. 「需求广场」需求词更新明细(七)
  19. 一些基于新闻表示和用户表示的新闻推荐模型总结:NPA/ NAML/ LSTUR/ NRMS
  20. 2022-2027年中国棉纱行业市场全景评估及发展战略规划报告

热门文章

  1. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java一起学习吧s77u8
  2. html离线教程,HTML5离线存储整理
  3. 【面试题】 面试官:说说你对 TypeScript 中枚举类型的理解?应用场景?
  4. 大数据之路—— 离线数据开发
  5. wxParse-微信小程序解析富文本组件的使用总结
  6. Uber市值腰斩:有贝索斯的野心,却没有亚马逊的命
  7. IEC 61968 和 IEC 61850 量测模型的差异性分析(论文学习)
  8. 鸿蒙大陆鸿蒙战凯,鸿蒙大陆10.2
  9. 2021-05-29-PCB学习重点笔记之二,画原理图
  10. 如何从 Power BI 示例中获取数据以供练习