Python爬蟲第二戰(使用xpath爬取網站數據)

本文是我在學習過程中記錄學習的點點滴滴,目的是為了學完之后鞏固一下順便也和大家分享一下,日后忘記了也可以方便快速的復習。

使用xpath爬取豬八戒網站數據

  • 前言


前言

今天學習的主要是關于Python使用xpath來爬取豬八戒網的網頁知識的理解和應用


#1.獲取首頁數據
#2.使用etree.HTML將首頁HTML字符串解析為一個節點樹對象(類似DOM樹)
#3.使用etree.xpath根據標簽名來定位元素import requests
from lxml import etreeurl = "https://www.zbj.com/fw/?k=saas"
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
}
page = requests.get(url,headers=headers)
# print(page.text)
html = etree.HTML(page.text)# 以下注釋的是這個網址通過右鍵copy xpath獲取的,注意:body下面的第一個div標簽是隱藏的overflow:hidden,所以這里divi數量需要-1# /html/body/div[2]/div/div/div[3]/div[1]/div[4]/div/div[2]/div/div[2]/div
divs = html.xpath("/html/body/div[1]/div/div/div[3]/div[1]/div[4]/div/div[2]/div/div[2]/div")
print(divs)
for div in divs:# print("hello")# 其次,這里注意價格div前面有兩個div,第一個div什么都沒有但是也要算上,自己去數的時候要注意因為它前面沒有展開▼縮寫?的三角符號# /html/body/div[2]/div/div/div[3]/div[1]/div[4]/div/div[2]/div/div[2]/div[1]/div/div[3]# 這里的[0]是獲取列表的第一個元素,.strip()是用來去掉頭尾兩部的¥,"sass".join是用SaaS將多個文字拼接起來price = div.xpath("./div/div[3]/div[1]/span/text()")[0].strip("¥")title ="sass".join( div.xpath("./div/div[3]/div[2]/a/span/text()"))company = div.xpath("./div/div[5]/div/div/div/text()")print(title)print(price)print(company)# 以下是采用相對路徑
# divs = html.xpath('//*[@id="__layout"]/div/div[3]/div[1]/div[4]/div/div[2]/div/div[2]/div')
# print(divs)
# for div in divs:
#     print("hello")
#     price = div.xpath("./div/div[3]/div[1]/span/text()")
#
#     print(price)

💕 原創不易,還希望各位大佬支持一下 \textcolor{blue}{原創不易,還希望各位大佬支持一下} 原創不易,還希望各位大佬支持一下

👍 點贊,你的認可是我創作的動力! \textcolor{orange}{點贊,你的認可是我創作的動力!} 點贊,你的認可是我創作的動力!

? 收藏,你的青睞是我努力的方向! \textcolor{red}{收藏,你的青睞是我努力的方向!} 收藏,你的青睞是我努力的方向!

🥕 評論,你的意見是我進步的財富! \textcolor{green}{評論,你的意見是我進步的財富!} 評論,你的意見是我進步的財富!

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

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

相關文章

進程同步和進程互斥的區別

如大家所了解的,進程互斥是由互斥資源引起的,即各進程之間共享互斥資源的使用權,這種競爭沒有確定的必然聯系,哪個進程競爭到互斥資源的使用權,則該資源就歸哪個進程使用,從而獲得所需資源的進程就可以獲得…

ArkTS語言基礎之函數

前言 臭寶們終于來到了ArkTS基礎之函數,今天我們來學習一下ArkTS的函數的相關知識,上一節中也有一些函數的基礎知識。 函數聲明 函數聲明引入一個函數,包含其名稱、參數列表、返回類型和函數體,在下面的例子中,我們聲明了一個名…

redis中的hash

Redis中的hash是什么 Hash: 哈希,也叫散列,是一種通過哈希函數將鍵映射到表中位置的數據結構,哈希函數是關鍵,它把鍵轉換成索引。 Redis Hash(散列表)是一種 field-value pairs(鍵值對&#x…

彈簧質點系統(C++實現)

本文實現一個簡單的物理算法:彈簧質點系統(Mass-Spring System)。這是一個經典的物理模擬算法,常用于模擬彈性物體(如布料、彈簧等)的行為。我們將使用C來實現這個算法,并結合鏈表數據結構來管理…

領域大模型

領域技術標準文檔或領域相關數據是領域模型Continue PreTrain的關鍵。 現有大模型在預訓練過程中都會加入書籍、論文等數據,那么在領域預訓練時這兩種數據其實也是必不可少的,主要是因為這些數據的數據質量較高、領域強相關、知識覆蓋率(密度…

Wincc項目被鎖定無法打開

Wincc項目被鎖定無法打開 解決方法 解決方法 一般這種情況是因為項目打開的時候直接關機導致的。 刪除項目文件夾的ProjectOpened.lck的文件夾即可 然后即可正常打開項目

SpringBoot3筆記

簡介: springboot整合了springframework,整合了許多配置,讓我們能夠快速創建一個以springframework為基礎的項目。 問題: 到目前為止,你已經學習了多種配置Spring程序的方式。但是無論使用XML、注解、Java配置類還是…

DeepSeek和文心一言的區別

文章目錄 1.開發公司:2.應用場景:3.訓練數據:4.模型架構:5.技術特點:6.語言風格:7.開源性:8.界面與用戶體驗: 1.開發公司: DeepSeek 由杭州深度求索人工智能基礎技術研究…

Windows 10 安裝Mysql 8

安裝準備 下載 MySQL Windows ZIP版(無安裝程序): 進入官網:https://dev.mysql.com/downloads/mysql/ 選擇 Windows → 下載 ZIP Archive,例如: mysql-8.0.34-winx64.zip 如果你的電腦沒有安裝 VC Redi…

ARM分揀機vs傳統PLC:實測數據揭示的4倍效率差

在蘇州某新能源汽車零部件倉庫,凌晨3點的分揀線上依然燈火通明。8臺搭載ARM Cortex-A72處理器的智能分揀機正在以每秒3件的速度處理著形狀各異的電池包組件,它們通過MES系統接收訂單信息,自主規劃最優路徑,將不同規格的零部件精準…

使用python訪問mindie部署的vl多模態模型

說明 今天使用mindie1.0部署了qwen2_7b_vl模型,測試過程出現一些問題,這里總結下。 問題1:transformers版本太低 報錯信息: [ERROR] [model_deploy_config.cpp:159] Failed to get vocab size from tokenizer wrapper with ex…

vscode 跳轉失敗之c_cpp_properties.json解析

{"configurations": [{"name": "Linux", // 配置名稱,對應當前平臺,VS Code 中可選"includePath": ["${workspaceFolder}/**", // 包含當前工作區下所有文件夾的頭文件(遞歸&…

飛速(FS)解決方案驗證實驗室搬遷升級,賦能客戶技術服務

飛速(FS)解決方案驗證實驗室近日順利完成搬遷升級,標志著飛速(FS)在解決方案可行性驗證、質量保障以及定制化需求支持方面邁上新臺階,進一步提升了產品競爭力和客戶信任度。 全新升級的實驗室定位為技術驗證…

安裝kerberos認證的cdh環境

1、服務端安裝 1.1 安裝wget yum -y install wget 由于本地已安裝過wget,所以顯示Nothing to do 1.2 進入 home 目錄 cd /home 1.3 下載centos6.7.iso文件,并掛載 wget https://archive.kernel.org/centos-vault/6.7/isos/x86_64/CentOS-6.7-x86_64…

MySQL基礎 [六] - 內置函數+復合查詢+表的內連和外連

內置函數一般要用select調用 內置函數 日期函數 current_date函數 current_date函數用于獲取當前的日期。如下: current_time函數 current_time函數用于獲取當前的時間。如下: now函數 now函數用于獲取當前的日期時間。如下: date函數 dat…

CS內網滲透 - 如何通過冰蝎 Webshell 上線 Weblogic 服務器到 Cobalt Strike 并繞過殺軟檢測(360、火絨)?

目錄 1. 冰蝎連接上 Weblogic 服務器如何上線到 Cobalt Strike 2. 服務器安裝殺毒工具如何繞過殺軟上線到 Cobalt Strike 2.1 殺軟對 Webshell 命令執行的檢測及繞過 2.2 殺軟對 Cobalt Strike 上線木馬的檢測及繞過 2.3 殺軟對這兩方面的限制及綜合繞過 3. 如何生成免殺…

[ctfshow web入門] web10

前置知識 cookie Cookie是網站存儲在瀏覽器中的小數據片段,用于識別用戶、保持登錄狀態或記住偏好設置。 也就是說,我以會員A的身份登錄了網站,網站會發送一段cookie(會員卡)給我,上面寫著會員卡A,下一次我再訪問&am…

藍橋杯:日期統計

文章目錄 問題描述解法一遞歸解法二:暴力破解 問題描述 首先我們要了解什么是子序列,就是一個序列之中可以忽略元素但是不能改變順序之后獲得的序列就叫做子序列。 如"123"就是"11234"的子序列而不是"11324"的子序列 解法…

藍橋杯 C/C++ 組歷屆真題合集速刷(一)

一、1.單詞分析 - 藍橋云課 &#xff08;模擬、枚舉&#xff09;算法代碼&#xff1a; #include <bits/stdc.h> using namespace std;int main() {string s;cin>>s;unordered_map<char,int> mp;for(auto ch:s){mp[ch];}char result_charz;int max_count0;fo…

重塑知識的引擎:人工智能如何改變知識的生產與傳播

一、引言&#xff1a;知識的邊界正在被人工智能重構 千百年來&#xff0c;人類對于“知識”的獲取方式一直遵循著某種路徑依賴&#xff1a;感知現實 → 歸納總結 → 文字表達 → 教育傳承 → 學術沉淀。這一過程復雜而緩慢&#xff0c;需要經過代際的努力才能實現知識的積累與…