当前位置: 首页 > news >正文

python爬虫DrissionPage的使用

一、概述

DrissionPage是一个用于自动化Web浏览器操作的工具,它结合了浏览器自动化与数据抓取的功能。这个工具旨在提供一种简单易用且功能强大的方式来实现网页自动化任务,比如表单提交、页面导
航、元素点击等操作,同时也支持从网页中提取数据。

二、和selenium的区别

DrissionPage
特点和优势:

  • 集成了Selenium和Requests的功能,可以无缝切换
  • 支持无头浏览器和有头浏览器
  • 简化了元素定位和操作的API
  • 内置了许多常用的功能,如等待元素加载、自动重试等
  • 对中文用户友好,文档和社区支持较好
    缺点:
  • 相对较新,生态系统不如Selenium和Playwright成熟
  • 主要面向中文用户,国际化程度较低
  • 在处理复杂的动态网页时可能不如Playwright灵活

Selenium
特点和优势:

  • 历史悠久,生态系统成熟,有大量的资源和插件
  • 支持多种编程语言(Python, Java, C#, Ruby等)
  • 与大多数主流浏览器兼容
  • 广泛应用于Web自动化测试
  • 社区大,问题容易找到解决方案
    缺点:
  • 相对较慢,特别是在启动浏览器和执行操作时
  • API设计较为底层,需要更多的代码来完成复杂操作
  • 对于现代Web应用(如单页应用)的支持不如Playwright
  • 需要单独下载和管理浏览器驱动

三、安装

pip install DrissionPage

image.png

四、实战

爬取豆瓣top250的电影名称

from DrissionPage import ChromiumPage  
  
# 创建对象  
page = ChromiumPage()  
# 访问网页  
page.get('https://movie.douban.com/top250')  
# 等待页面跳转  
page.wait.load_start()  
  
flag = True  
while flag:  
    # 获取所有标题  
    links = page.eles('.hd')  
    # 遍历并打印结果  
    for link in links:  
	    print(link.text)  
    # 查找下一页的按钮  
    nextButton = page('.next')  
    # 如果没有找到则结束  
    if not nextButton.ele('tag:a'):  
	    flag = False  
    else:  
	    nextButton.click()  
  
# 关闭浏览器  
page.quit()

成功打印豆瓣top250的电影名称
image.png

http://www.dtcms.com/a/86741.html

相关文章:

  • 【CC2530 教程 二】CC2530定时器实现微秒、毫秒、秒延时函数
  • 爬虫框架Scrapy从入门到实战
  • android初学
  • cython编译pyd并且c调用
  • 腾讯四面面经
  • Qt-Q_ENUM宏和QMetaEnum类
  • rocky linux 与centos系统的区别
  • 16.Linux蓝牙从硬件驱动到应用
  • HTTP核心知识
  • vue插槽传送和接收item
  • pyqt5报错:qt.qpa.plugin: Could not find the Qt platform plugin “xcb“(已解决)
  • Linux安装Ollama+MaxKB建立本地知识库
  • 2024年MathorCup数学建模C题物流网络分拣中心货量预测及人员排班解题全过程文档加程序
  • SpringBoot(8)——Springboot数据层开发
  • 【Linux文件IO】Linux中文件属性与目录操作的API介绍和用法
  • 第三章 | 初识 Solidity:开发环境搭建 第一个智能合约{介绍篇}
  • Codeforces Round 1012 (Div. 2) 3.23
  • 零基础上手Python数据分析 (8):Pandas 核心数据结构 Series 和 DataFrame
  • 【博客节选】再谈Unity 的 root motion
  • 【算法】入门详解
  • asp.net mvc 向前端响应json数据。用到jquery
  • 描述@keyframes规则在 CSS 动画中的原理及作用,如何创建一个简单的动画
  • 大厂技术博客总结
  • MySQL 5.7升级8.0报异常:ONLY_FULL_GROUP_BY
  • 猿大师中间件:如何在最新Chrome浏览器Web网页内嵌本地OCX控件?
  • Docker学习笔记(十二)docker镜像没有vi怎么优雅的编辑文本
  • FAQ - VMware vSphere Web 控制台中鼠标控制不了怎么办?
  • Cursor学习总结
  • 正则表达式基本语法和Java中的简单使用
  • LiteIDE中配置golang编译生成无CMD窗口EXE的步骤