python爬虫:DrissionPage实战教程
如果本文章看不懂可以看看上一篇文章,加强自己的基础:爬虫自动化工具:DrissionPage-CSDN博客
案例解析:
前提:我们以ChromiumPage为主,写代码工具使用Pycharm(python环境3.9-3.10)
- 我们要使用浏览器开发者工具(F12)进行对标签的查找,找到之后最好在终端进行搜索,确保标签只有一个在进行代码的编写

1. 百度案例(https://www.baidu.com/ )
(1) 案例一:
from DissionPage import ChromiumPage,ChromiumOptions# 先创建一个实例化对象
co = ChromiumOptions()
co.headless(False)
# 1、设置无头模式:co.headless(True)
# 2、设置无痕模式:co.incognito(True)
# 3、设置访客模式:co.set_argument('--guest')
# 4、设置请求头user-agent:co.set_user_agent()
# 5、设置指定端口号:co.set_local_port(7890)
# 6、设置代理:co.set_proxy('http://localhost:2222')page = ChromiumPage(co)
url = "https://www.baidu.com"
page.get(url)
page.wait.load_start() # 等待页面加载完成# 点击百度搜索框输入美女,并点击搜索
page.ele("css:#kw").input("美女")
page.ele("css:#su").click()print(page.html)
(2)案例二:
from DrissionPage import ChromiumPage# 先实例化一个对象
cp = ChromiumPage()
cp.get('https://www.baidu.com/')cp.ele("#kw").input("IP地址") # 定位到搜索框并填充数据
cp.wait.load_start() # 等待页面加载完成(像人的操作)
cp.ele("#su").click() # 找到搜索按钮并点击搜索# 我们可以对其网址进行监听
cp.listen.start('qifu-api.baidubce.com/ip/local/geo/v1/district')res = cp.listen.wait() # 等待并获取一个数据包
print(res.url) # 输出数据包url
print(res.response.headers) # 输出响应头
print(res.response.statusText) # 输出响应状态码
print(res.response.body) # 输出响应内容
2. 招聘平台的爬取
注意:学习为主,不要大量爬取数据,妨碍网站的运行,造成法律问题,需本人自己承担
import timefrom DrissionPage import ChromiumPage, ChromiumOptions
import pandas as pd# 先实例化一个对象
co = ChromiumOptions().auto_port()
page = ChromiumPage(co)# 首先我们进行监听动作
page.listen.start('/wapi/zpgeek/search/joblist.json')
page.get('https://www.zhipin.com/beijing/?seoRefer=index')# 输入我们要查找的岗位
page.ele('.ipt-search').input('网络安全\n')
res = page.listen.wait()try:time.sleep(1)cha = page.ele('.icon-close')print("cha:::", cha)cha.click()
except Exception as e:joblist = res.response.body['zpData']['jobList']for i in range(5):btn = page.ele('.ui-icon-arrow-right')_a = btn.parent().attr('class')time.sleep(2)if _a == '':page.scroll.to_bottom()page.wait(2)btn.click()res = page.listen.wait()joblist += res.response.body['zpData']['jobList']print(joblist)else:print('已获取全部职位信息')breakdf = pd.DataFrame(joblist)df.to_excel('boss.xlsx', index=False)page.quit()
相关文章:
python爬虫:DrissionPage实战教程
如果本文章看不懂可以看看上一篇文章,加强自己的基础:爬虫自动化工具:DrissionPage-CSDN博客 案例解析: 前提:我们以ChromiumPage为主,写代码工具使用Pycharm(python环境3.9-3.10) …...
一、STM32简介
一、实验器材介绍 二、STM32简介 1.STM32 名词解释 STM32是ST公司基于ARM Cortex-M内核开发的32位微控制器。 ST,指ST公司(意法半导体);M,MicroController 微控制器(MCU,MicroController Unit 微控制器单元/单片机&…...
[ctfshow web入门] web2
前置知识 js是可以写在网页中,用于控制网页行为,例如现在表现出无法使用F12,常见用法校验前台登录时输入的邮箱格式是否正确 view-source协议是一种早期就存在的协议,基本上所有主流浏览器都支持这一协议,因此用户…...
torch 拆分子张量 分割张量
目录 unbind拆分子张量 1. 沿着第n个维度拆分(即按“批次”拆分) split分割张量 常用用法: 总结: unbind拆分子张量 import torchquaternions torch.tensor([[1, 2, 3, 4], [5, 6, 7, 8]]) result torch.unbind(quaternio…...
定制一款国密浏览器(2):修改包名
在上一章中,介绍了 chromium 源码的获取和构建deb 包,这一章将修改包名。 我给定制浏览器取名 Mojo Browser,Mojo 这个词来自 Chromium 代码中的 Mojo 跨进程框架,此外 Mojo 隐含有突破困境的内在动力的意思。 所以接下修改包名为 org.mojo.browser,第二就是修改程序的安…...
使用MATIO库读取Matlab数据文件中的多维数组
使用MATIO库读取Matlab数据文件中的多维数组 MATIO是一个用于读写Matlab数据文件(.mat)的开源C库。下面是一个完整的示例程序,展示如何使用MATIO库读取Matlab数据文件中的多维数组。 示例程序 #include <stdio.h> #include <stdlib.h> #include <…...
MySQL篇(五)MySQL主从同步原理深度剖析
MySQL篇(五)MySQL主从同步原理深度剖析 MySQL篇(五)MySQL主从同步原理深度剖析一、引言二、MySQL主从同步基础概念主库(Master)从库(Slave)二进制日志(Binary Log&#x…...
PyQt5和OpenCV车牌识别系统
有需要请加文章底部Q哦 可远程调试 PyQt5和OpenCV车牌识别系统 一 介绍 此车牌识别系统基于PyQt5和OpenCV开发,蓝牌,新能源(绿牌),黄牌,白牌均可以准确识别,支持中文识别,可以导出识别结果(Excel格式)。此…...
【Android Studio 下载 Gradle 失败】
路虽远行则将至,事虽难做则必成 一、事故现场 下载Gradle下载不下来,没有Gradle就无法把项目编译为Android应用。 二、问题分析 观察发现下载时长三分钟,进度条半天没动,说明这个是国外的东西,被墙住了,需…...
Xshell Plus 6下载与安装
文章目录 Xshell Plus 6 简介(一)网络连接与协议支持(二)会话管理(三)安全特性(四)文件传输功能(因集成Xftp 6 )(五)个性化与便捷功能…...
格式工厂怎样插入内置音频文件
打开格式工厂,在打开的页面选择 “视频” 选项;在视频选项里点击 “混流”;在混流页面右侧点击 “添加文件”,分别添加上视频文件和要插入的内置音频文件;在 “输出设置” 的下拉菜单里,分别选好要输出的视…...
CNN 里面能自然起到防止过拟合的办法
在 CNN(卷积神经网络)中,其实有 一些结构和机制 天然就具有防止过拟合(overfitting)的作用,不完全依赖额外的正则化手段。 🧠 一、CNN 天然防过拟合的几个原因: 1️⃣ 局部连接&…...
九、重学C++—类和函数
上一章节: 八、重学C—动态多态(运行期)-CSDN博客https://blog.csdn.net/weixin_36323170/article/details/147004745?spm1001.2014.3001.5502 本章节代码: cpp/cppClassAndFunc.cpp CuiQingCheng/cppstudy - 码云 - 开源中国…...
使用MCP服务器实现AI任务完成通知:让Cursor更智能
0. 简介 在使用AI工具进行长时间任务时,常常需要等待结果。MCP(Model Context Protocol)服务器"mcp_server_notify"提供了一个优雅的解决方案,让AI在完成任务后通过系统通知提醒你。本文将介绍如何在Cursor中配置和使用…...
解决 Hugging Face SentenceTransformer 下载失败的完整指南:ProxyError、SSLError与手动下载方案
问题背景 在使用 Hugging Face 的 SentenceTransformer 加载预训练模型 all-MiniLM-L6-v2 时,遇到了以下错误: 代理连接失败(ProxyError / SSLError: KRB5_S_TKT_NYV)大文件下载中断(unexpected EOF while reading&a…...
Linux | I.MX6ULL开发板固件烧录所需文件详述(9)
01 搞清楚手里的开发板是 EMMC 还是 NAND FLASH 。默认我的商业级是EMMC ,开关:10011010 终结者i.MX6ULL 开卡板分为工业级和商业级两种不同的开发板。 商业级的核心板,它的存储是 EMMC 的,EMMC 的存储是类似于正方形的芯片,旁边是 NAND FLASH的一个封装,因为我们这里…...
论文阅读笔记:Denoising Diffusion Implicit Models (5)
0、快速访问 论文阅读笔记:Denoising Diffusion Implicit Models (1) 论文阅读笔记:Denoising Diffusion Implicit Models (2) 论文阅读笔记:Denoising Diffusion Implicit Models (…...
【AI论文】GPT-ImgEval:一个用于诊断GPT4o在图像生成方面的综合基准
摘要:OpenAI的GPT4o模型最近的突破在图像生成和编辑方面展现了令人惊讶的良好能力,引起了社区的极大兴奋。 本技术报告介绍了第一眼评估基准(名为GPT-ImgEval),定量和定性诊断GPT-4o在三个关键维度的性能:&…...
CSS3学习教程,从入门到精通, 学院网站完整项目 - HTML5 + CSS3 实现(25)
学院网站完整项目 - HTML5 CSS3 实现 下面是一个完整的学院网站项目,包含主页、新闻列表页、新闻详情页和视频宣传页的实现。我将按照您的要求提供详细的代码和注释。 项目结构 college-website/ ├── index.html # 主页 ├── news-list.html …...
Java虚拟机面试题:内存管理(中)
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编…...
如何绕过myabtis-plus的逻辑删除条件
目标 mp中所有方法都会带上逻辑删除,如果启用了逻辑删除,有时候我们需要忽略逻辑删除.改如何实现 解决方法 自定义DeleteReal 方法 import com.baomidou.mybatisplus.core.enums.SqlMethod; import com.baomidou.mybatisplus.core.injector.AbstractMethod; import com.ba…...
王者荣耀的游戏匹配机制
王者荣耀的匹配机制主要基于ELO评分系统(隐藏分机制)和段位匹配,旨在平衡对局双方实力,同时通过多种策略控制玩家胜率趋近50%。 一、匹配机制核心 1. ELO评分(隐藏分) - 系统根据玩家的胜负、KDA、伤害量、…...
游戏无法启动?XINPUT1_3.dll 丢失的终极解决方案
当你兴奋地启动一款新游戏时,突然弹出一个错误提示——‘程序无法启动,因为计算机中丢失 XINPUT1_3.dll’。这种问题在 PC 玩家中非常常见,尤其是运行一些较老的游戏时。XINPUT1_3.dll 是 DirectX 运行库的关键组件,缺失会导致游戏…...
macOS下SourceInsight的替代品
macOS 推荐的几款开源、轻量级、且功能类似于 SourceInsight 的源码阅读工具(排除 VS Code): 1. Zeal(离线文档 简单代码导航) 官网/GitHub: https://zealdocs.org/特点: 轻量级离线文档浏览器࿰…...
嵌入式硬件如何在PADS中将原理图转换为PCB详解
本文旨在讲述如何在PADS中将原理图转换为PCB。 本文以C51原理图作为例子。 1.首先在桌面上打开PADS Logic 2.找到菜单栏的文件选项,然后点击新建。 点击新建之后出现如下界面。...
FreeRTOS 软件定时器工作原理及应用
FreeRTOS 软件定时器工作原理及应用 FreeRTOS 的 软件定时器(Software Timer) 是一种基于系统节拍(Tick)的计时机制,允许开发者创建周期性或单次触发的定时任务,而无需依赖硬件定时器。软件定时器由 定时器服务任务(Timer Service Task) 管理,适用于需要时间控制但无…...
软件工程-UML
例图,类图,状态图,顺序图,活动图 目录 例图 类图 状态图 顺序图 活动图 例图 例图由四个元素组成,参与者、用例、系统边界、参与者和用例之间的关系 参与者用一个小人表示,用例用椭圆表示ÿ…...
力扣经典算法篇-9-跳跃游戏(贪心算法,反向递推)
题干: 给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。 示例 …...
【Linux学习笔记】初识进程概念和进程PCB
【Linux学习笔记】初识冯诺依曼体系和进程PCB 🔥个人主页:大白的编程日记 🔥专栏:Linux学习笔记 文章目录 【Linux学习笔记】初识冯诺依曼体系和进程PCB前言一. 冯诺依曼体系结构1.1 关于冯诺依曼体系的要点: 二. 操…...
深入探索 Linux Top 命令:15 个实用示例
在 Linux 系统管理中,top 命令是系统性能监控不可或缺的工具。它能够实时显示系统的 CPU、内存、进程等资源的使用情况,帮助您快速识别性能瓶颈和异常进程。本文将详细介绍 15 个实用的 top 命令使用示例,旨在帮助您更高效地进行系统管理与优…...
