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()

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/74640.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/74640.shtml
英文地址,請注明出處:http://en.pswp.cn/web/74640.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

07-01-自考數據結構(20331)- 排序-內部排序知識點

內部排序算法是數據結構核心內容,主要包括插入類(直接插入、希爾)、交換類(冒泡、快速)、選擇類(簡單選擇、堆)、歸并和基數五大類排序方法。 知識拓撲 知識點介紹 直接插入排序 定義:將每個待排序元素插入到已排序序列的適當位置 算法步驟: 從第二個元素開始遍歷…

Go語言-初學者日記(八):構建、部署與 Docker 化

🧱 一、go build:最基礎的構建方式 Go 的構建工具鏈是出了名的輕量、簡潔,直接用 go build 就能把項目編譯成二進制文件。 ? 構建當前項目 go build -o myapp-o myapp 指定輸出文件名默認會構建當前目錄下的 main.go 或 package main &a…

教程:如何使用 JSON 合并腳本

目錄 1. 介紹 2. 使用方法 3. 注意事項 4. 示例 5.完整代碼 1. 介紹 該腳本用于將多個 COCO 格式的 JSON 標注文件合并為一個 JSON 文件。COCO 格式常用于目標檢測和圖像分割任務,包含以下三個主要部分: "images":圖像信息&a…

Java學習總結-緩沖流性能分析

測試用例: 分別使用原始的字節流,以及字節緩沖流復制一個很大的視頻。 測試步驟: 在這個分析性能需要一個記錄時間的工具:這個是記錄1970-1-1 00:00:00到現在的總毫秒值。 long start System.currentT…

流影---開源網絡流量分析平臺(五)(成果展示)

目錄 前沿 攻擊過程 前沿 前四章我們已經成功安裝了流影的各個功能,那么接下來我們就看看這個開源工具的實力,本實驗將進行多個攻擊手段(ip掃描,端口掃描,sql注入)攻擊靶機,來看看流影的態感效…

vs環境中編譯osg以及osgQt

1、下載 OpenSceneGraph 獲取源代碼 您可以通過以下方式獲取 OSG 源代碼: 官網下載:https://github.com/openscenegraph/OpenSceneGraph/releases 使用 git 克隆: git clone https://github.com/openscenegraph/OpenSceneGraph.git 2、下載必要的第三方依賴庫 依賴庫 ht…

Unity:標簽(tags)

為什么需要Tags? 在游戲開發中,游戲對象(GameObject)數量可能非常多,比如玩家、敵人、子彈等。開發者需要一種簡單的方法來區分這些對象,并根據它們的類型執行不同的邏輯。 核心需求: 分類和管…

【C++11】lambda

lambda lambda表達式語法 lambda表達式本質是一個匿名函數對象,跟普通函數不同的是它可以定義在函數內部。lambda表達式語法使用層而言沒有類型,所以一般是用auto或者模板參數定義的對象去接收lambda對象。 lambda表達式的格式:[capture-l…

fpga:分秒計時器

任務目標 分秒計數器核心功能:實現從00:00到59:59的循環計數,通過四個七段數碼管顯示分鐘和秒。 復位功能:支持硬件復位,將計數器歸零并顯示00:00。 啟動/暫停控制:通過按鍵控制計時的啟動和暫停。 消抖處理&#…

《UNIX網絡編程卷1:套接字聯網API》第6章 IO復用:select和poll函數

《UNIX網絡編程卷1:套接字聯網API》第6章 I/O復用:select和poll函數 6.1 I/O復用的核心價值與適用場景 I/O復用是高并發網絡編程的基石,允許單個進程/線程同時監控多個文件描述符(套接字)的狀態變化,從而高…

SpringBoot+vue前后端分離整合sa-token(無cookie登錄態 詳細的登錄流程)

SpringBootvue前后端分離整合sa-token(無cookie登錄態 & 詳細的登錄流程) 1.介紹sa-token1.1 框架定位1.2 核心優勢 2.如何整合sa-token3.如何進行無cookie模式登錄3.1后端3.1.1 VO層3.1.2 Controller層3.1.3 Service層 3.2前端3.2.1 登錄按鈕自定義…

MYOJ_1171:(洛谷P1075)[NOIP 2012 普及組] 質因數分解(數學相關,質數與約數基礎)

題目描述 已知正整數 n 是兩個不同的質數的乘積,試求出兩者中較大的那個質數。 1≤n≤210^9 輸入 輸入一個正整數 n。 輸出 輸出一個正整數 p,即較大的那個質數。 樣例輸入輸出 輸入:21 輸出:7 思路: 為了節約時間與…

Python語言的測試用例設計

Python語言的測試用例設計 引言 隨著軟件開發的不斷進步,測試在軟件開發生命周期中的重要性日益凸顯。測試用例設計是軟件測試的核心,它為軟件系統的驗證和驗證提供了實施的基礎。在Python語言中,由于其簡潔明了的語法和強大的內置庫&#…

SpringKafka消息消費:@KafkaListener與消費組配置

文章目錄 引言一、Spring Kafka消費者基礎配置二、KafkaListener注解使用三、消費組配置與負載均衡四、手動提交偏移量五、錯誤處理與重試機制總結 引言 Apache Kafka作為高吞吐量的分布式消息系統,在大數據處理和微服務架構中扮演著關鍵角色。Spring Kafka為Java開…

VMware 虛報化Ubuntu 卡成一B,如何接招?

故事背景 Win10 專業版 安裝VMware pro ,虛擬化出一個Window10,另一個是UBuntu.自從使用起來去不去就卡死。開始是以為驅動或者升級造成的,重新安裝一段時間問題照舊。更氣人的這種現象具有不定期性,說不定什么時候就來這么一出。 直接解決方…

cloud項目批量修改主機號

當clone了一個cloud項目后,要把別人的主機號全部改成自己的,非常麻煩 在項目根目錄下,啟動 Git Bash。在 Git Bash 終端中使用原始的 Unix 命令: find . -type f -exec sed -i s/127\.0\.0\.1/132.168.190.163/g {} 其中127.0.…

微信小程序使用 Vant Weapp 組件庫教程

在微信小程序項目中使用 Vant 組件庫(Vant Weapp)主要包括以下幾個步驟: 1. 初始化項目并安裝 Vant Weapp 初始化 npm 在項目根目錄下運行以下命令,生成 package.json: npm init -y安裝 Vant Weapp 執行以下命令安裝 V…

FPGA狀態機思想實現流水燈及HDLBits學習

目錄 第一章 在DE2-115上用狀態機思想實現LED流水燈1.1 狀態機設計思路1.2 Verilog代碼實現1.3. 仿真測試代碼1.4 編譯代碼與仿真 第二章 CPLD和FPGA芯片的主要技術區別是什么?它們各適用于什么場合?2.1 主要技術區別2.2 適用場合 第三章 HDLBits學習3.1…

與總社團聯合會合作啦

2025.4.2日,我社團向總社團聯合會與暮光社團發起合作研究“潯川代碼編輯器v2.0”。至3日,我社團收到回復: 總社團聯合會: 總社團聯合會已收到潯川社團官方聯合會的申請,經考慮,我們同意與潯川社團官方聯合…

Shiro學習(三):shiro整合springboot

一、Shiro整合到Springboot步驟 1、準備SpringBoot 環境,這一步省略 2、引入Shiro 依賴 因為是Web 項目,所以需要引入web 相關依賴 shiro-spring-boot-web-starter,如下所示: 3、準備Realm 因為實例化 ShiroFilterFactoryBean 時…