无界面 centOS 中使用 DrissionPage

无界面 centOS 中使用 DrissionPage

    • 1. centos 安装 chrome
    • 2. python 代码
    • DrissionPage简介

某电影网站使用了加密js,无法直接从主页上爬取电影信息,只好借助 selenium 等工具。selenium 需要在服务器上安装浏览器和对应的 driver。我的服务器是无界面 centOS,未找到对应的办法。偶然看到 DrissionPage,一个国人开发的网页自动化工具,直接使用系统中的 chromium(可以指定chrome、edge),不需要 driver。尝试了一下,可以解决问题。

需要解决两个事情:

  • centOS 上安装安装 chrome
  • DrissionPage 使用无头模块

1. centos 安装 chrome

添加 Chrome 的 Yum Repository:

sudo wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm

安装下载的 rpm 包:

sudo yum localinstall google-chrome-stable_current_x86_64.rpm

如果出现依赖问题,执行以下命令来解决:

sudo yum install lsb

默认安装位置:/opt/google/chrome/google-chrome,可以通过在终端中输入 google-chrome-stable 来启动 Chrome 浏览器

2. python 代码

安装 DrissionPage 包

pip install DrissionPage

实现代码如下:

# -*- coding: utf-8 -*-
""" centOS 使用 DrissionPage """
from collections import namedtuplefrom DrissionPage import ChromiumPage, ChromiumOptionsMovie = namedtuple('Movie', 'name url des date')def crawl_dy2018():# 在 centOS 中使用无头模式的配置co = ChromiumOptions()co.set_browser_path(r'/opt/google/chrome/google-chrome') # 设置系统中 chrome 的位置co.set_argument('--incognito')co.set_argument('--no-sandbox')co.headless() # 无头模块# 具体爬取方法movies = []page = ChromiumPage(co)page.get('https://dy2018.com/')items = page.eles('.co_content222')if items:for item in [items[0], items[2]]:for li in item.eles('tag:li'):a = li.ele('tag:a')span = li.ele('tag:span')movies.append(Movie(a.text, a.link, '', span.text))# page.quit()return sorted(movies, key=lambda movie: movie.date, reverse=True)

DrissionPage简介

DrissionPage 是一个基于 python 的网页自动化工具。
它既能控制浏览器,也能收发数据包,还能把两者合而为一。
可兼顾浏览器自动化的便利性和 requests 的高效率。
它功能强大,内置无数人性化设计和便捷功能。
它的语法简洁而优雅,代码量少,对新手友好。

详情及使用方法见官网

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/809882.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker学习笔记(一):入门篇,Docker概述、基本组成等,对Docker有一个初步的认识

前言 记录时间 [2024-4-5] 在先前的文章中,笔者进行了Windows系统下YOLOv8模型的简单测试,并由此引发思考:是否能尝试将此模型运行在Linux中呢?又或者,运行在Docker中。关于Docker的学习就这么展开了。 本文便是有关D…

RX8130CE为用户提供带复位延迟和主备电管理的解决方案

实时时钟作为设备的精确时钟来源,其作用如同人的心脏,为设备提供准确稳定的心跳.而便携式设备由于应用场景多变,所以对内部元器件要求也相对较高,这就对作为核心器件的实时时钟模块提出不少挑战。世强代理品牌EPSON实时钟模块产品…

Web3:下一代互联网的崛起与革命性展望

随着科技的飞速发展,互联网正在经历一场前所未有的变革。Web3,作为互联网的下一代,正以其独特的魅力和潜力,引领着这场革命性的浪潮。本文旨在深入探讨Web3的概念、特点以及对未来的展望,为读者呈现一个全面而深入的We…

【Linux】开始了解重定向

送给大家一句话: 人真正的名字是:欲望。所以你得知道,消灭恐惧最有效的办法,就是消灭欲望。 – 史铁生 《我与地坛》 开始了解重定向 1 前言2 重定向与缓冲区2.1 文件描述符分配规则2.2 重定向的现象2.3 重定向的理解2.4 缓冲区…

【Python】探索Python中的aiohttp:构建高效并发爬虫

后来 我总算学会了 如何去爱 可惜你 早已远去 消失在人海 后来 终于在眼泪中明白 有些人 一旦错过就不再 🎵 HouZ/杨晓雨TuTu《后来》 在数据密集和网络密集的任务中,提高程序的执行效率是非常重要的。Python作为一门强大的编程语言…

jmeter生成随机数的详细步骤及使用方式

Apache JMeter 是一个用于测试性能的开源工具,它可以模拟多种类型的负载并测量应用程序的性能。在 JMeter 中生成随机数可以通过使用预定义的函数来实现。以下是生成随机数的详细步骤及使用方式: 安装 JMeter: 首先,你需要在你的计…

5.6 mybatis之RowBounds分页用法

文章目录 mybatis 中,使用 RowBounds 进行分页,非常方便,不需要在 sql 语句中写 limit,即可完成分页功能。但是由于它是在 sql 查询出所有结果的基础上截取数据的,所以在数据量大的sql中并不适用,它更适合在…

【Python】OPC UA 服务器扫描工具

引言 OPC UA(开放平台通信统一架构)是一种跨平台的、开放的数据交换标准,广泛用于工业自动化领域。在工业4.0的大背景下,OPC UA服务器在网络中的部署日益增多,如何快速有效地发现这些服务器成为了一个实际需求。本文将…

UI自动化测试重点思考(下)--装饰器/生成器/夹具的使用/描述符的作用/ddt驱动/多线程

UI自动化测试重点思考--装饰器 装饰器装饰器定义装饰器代码示例装饰器的执行如何将装饰器融合到pytest框架里面 生成器创建生成器生成器的定义如何将生成器融合到pytest框架里面 fixture(夹具)使用pytest fixture 中 scope 参数的详细解释 描述符的总结描…

【Sentinel的限流使用】⭐️SpringBoot整合Sentinel实现Api的限流

目录 前言 一、Sentinel下载 二、SpringBoot 整合 Sentinel 三、流控规则 章末 前言 小伙伴们大家好,上次使用OpenFeign时用到了 Hystrix实现熔断和限流的功能,但是发现该工具已经停止维护了,于是想到了Spring Cloud Alibaba开发的Sentin…

docker 容器迁移

目录 1、将容器打成镜像后迁移 2、导出和导入容器 1、将容器打成镜像后迁移 (1)将容器打成镜像 # 打成镜像 mycentos docker commit -m "my centos" -a "author" 2d1fba0978 mycentos # 打成镜像 mycentos,tag …

高创新 | Matlab实现OOA-CNN-GRU-Attention鱼鹰算法优化卷积门控循环单元注意力机制多变量回归预测

高创新 | Matlab实现OOA-CNN-GRU-Attention鱼鹰算法优化卷积门控循环单元注意力机制多变量回归预测 目录 高创新 | Matlab实现OOA-CNN-GRU-Attention鱼鹰算法优化卷积门控循环单元注意力机制多变量回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现OOA…

Discoverydevice.java和activity_discoverydevice.xml

一、Discoverydevice.java public class Discoverydevice extends AppCompatActivity {private DeviceAdapter mAdapter2;private final List<DeviceClass> mbondDeviceList new ArrayList<>();//搜索到的所有已绑定设备保存为列表private final List<Devic…

设计模式学习(四)——《大话设计模式》

设计模式学习&#xff08;四&#xff09;——《大话设计模式》 1.泛型 允许在编码时使用类型参数&#xff0c;从而使得代码更加灵活、可重用。泛型可以应用于类、接口、方法中&#xff0c;通过这种方式&#xff0c;可以编写出适用于多种数据类型的通用代码&#xff0c;而不是…

如何在CentOS7.x上生成自签名SSL证书

在配置HTTPS连接时&#xff0c;SSL证书是确保数据传输安全性的关键组件。自签名证书是一种不通过证书颁发机构&#xff08;CA&#xff09;签发的证书&#xff0c;适用于测试和内部使用。以下是在CentOS 7.x系统上生成自签名证书的详细步骤。 1. 安装OpenSSL OpenSSL是一个强大…

【嵌入式学习】ARM day04.11

一、思维导图 二、练习 实现三个灯闪烁 汇编代码 .text .global _start _start: 使能GPIOE和F时钟LDR r0,0x50000A28LDR r1,[R0]ORR R1,R1,#(0X3<<4)STR R1,[R0]配置GPIOE和F的MODER寄存器LDR r0,0x50006000 GPIOELDR R1,0X50007000 G…

顶顶通呼叫中心中间件-回铃音补偿(mod_cti基于FreeSWITCH)

顶顶通呼叫中心中间件-回铃音补偿(mod_cti基于FreeSWITCH) 回铃音的用处 回铃音&#xff1a; 当别人打电话给你时&#xff0c;你的电话响铃了&#xff0c;而他听到的声音叫做回铃音。回铃音是被叫方向主叫方传送&#xff0c;也是彩铃功能的基础。我们平时打电话听到的“嘟 嘟…

【C++进阶】C++异常详解

C异常 一&#xff0c;传统处理错误方式二&#xff0c;C处理的方式三&#xff0c;异常的概念四&#xff0c;异常的使用4.1 异常和捕获的匹配原则4.2 函数调用链中异常栈展开匹配原则4.3 异常的重新抛出&#xff08;异常安全问题&#xff09;4.4 RAII思想在异常中的作用 五&#…

C# 设计模式的七大原则详解

文章目录 前言1. 单一职责原则 (SRP)2. 开放封闭原则 (OCP)3. 里氏替换原则 (LSP)4. 依赖倒置原则 (DIP)5. 接口隔离原则 (ISP)6. 合成/聚合复用原则 (CARP)7. 迪米特法则 (LoD) 前言 在 C# 编程中&#xff0c;设计模式的七大原则是保证代码质量和可维护性的基石。这些原则不仅…

2024 Mathorcup高校数学建模挑战赛(B题)| 甲骨文识别 | 建模秘籍文章代码思路大全

铛铛&#xff01;小秘籍来咯&#xff01; 小秘籍团队独辟蹊径&#xff0c;以CNN卷积神经网络&#xff0c;计算机视觉等强大工具&#xff0c;构建了解决复杂问题的独特方案。深度学习, 混沌模型的妙用&#xff0c;为降低非法野生动物贸易提供新视角。通过综合分析&#xff0c;描…