BeautifulSoup4通過lxml使用Xpath,以及獲取(定位)元素和其文本或者屬性

環境:win10,python3.8.10

首先需要安裝:beautifulsoup4,lxml

使用命令:

pip38 install beautifulsoup4
pip38 install lxml

安裝完畢后查看一下:?

寫代碼:

from bs4 import BeautifulSoup 
from lxml import etree 
import requests URL = "https://www.xxx.com"HEADERS = ({'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 \ (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36',\ 'Accept-Language': 'en-US, en;q=0.5'}) webpage = requests.get(URL, headers=HEADERS) 
soup = BeautifulSoup(webpage.content, "html.parser") 
dom = etree.HTML(str(soup)) 
print(dom.xpath('//*[@id="firstHeading"]')[0].text) 

這里針對xpath獲取(定位)元素的方法,還有幾點注意事項:?

(1)一個屬性(如property)中包含[即這個屬性值是a b c d這樣的樣式]某個字符串(如og:description)的寫法

dom.xpath("//meta[contains(@property,'og:description')]")

(2) 上述代碼的結果是一個列表,使用時一般要轉成單個(加[0]或者用循環)

(3)獲取其標簽內的文本用元素.text,獲取其某個屬性用元素.get('屬性')

(4)最后注意一點,瀏覽器網頁F12出來的數據,和selenium、requests出來的數據,有時候是不一樣的,要根據你使用的獲取響應的實際數據來定位元素。?

上述內容參考:

(1)How to use Xpath with BeautifulSoup ? - GeeksforGeeks

(2)匯總selenium利用xpath等找網頁節點的方法_webdriver xpath 查詢指定節點下的子節點-CSDN博客

(3)匯總selenium利用xpath等找網頁節點的方法(二)-CSDN博客

(4)?xpath定位不包含某種屬性的元素_xpath 不包含屬性-CSDN博客

(5)用selenium和xpath定位元素并獲取屬性值以及str字符型轉json型_python selenium xpath設置元素屬性值-CSDN博客

(6)js通過xpath定位元素并且操作元素以下拉框select為例_js xpath-CSDN博客?

(7)bs4(beautifulsoup4)獲取div部分文本內容(標簽下的文本及子標簽文本問題)_beautiful解析一部分div-CSDN博客

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

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

相關文章

Go 圖像處理

Golang中的image包提供了基本的圖像類型、顏色模型、以及用于處理圖像的各種函數和接口。 常用類型與接口 image.Image 接口 這是Go語言中處理圖像的核心接口,定義了所有圖像必須實現的方法: type Image interface {// Bounds returns the domain for…

rocketmq 學習二 基本概念

教程:基本概念 | RocketMQ 視頻教程 https://www.bilibili.com/video/BV1d5411y7UW?vd_sourcef1bd3b5218c30adf0a002c8c937e0a27 版本:5.0 一 基本概念 1.1 生產者/Producer 1.1.1 定義 消息發布者。是構建并傳輸消息到服務端的運行實體。…

異眾比率(variation ratio)

異眾比率(variation ratio)是指非眾數組的頻數占總頻數的比率,其計算公式為: 其中,為眾數組的頻數。 異眾比率主要用于衡量眾數對一組數據的代表程度。異眾比率越大,說明非眾數組的頻數占總頻數的比重越大&#xff0…

harbor 認證

Harbor 認證過程 Harbor以 Docker Registry v2認證為基礎,添加上一層權限保護。1.v2 集成了一個安全認證的功能,將安全認證暴露給外部服務,讓外部服務去實現2.強制用戶每次Docker pull/push請求都要帶一個合法的Token,Registry會…

python的requests爬蟲模塊使用代理ip方法---集合

形式一 import requests proxies {http:128.3.74.224:2890,https:128.3.74.224:2890} ip requests.get(http://httpbin.org/ip,proxiesproxies) print(ip.text)形式二 形式一不行的情況下,試試形式二 import requests proxies {http:http://127.0.0.1:7890,http…

【AHK V2】設計模式之命令模式

目錄 情景劇場什么是命令模式優缺點優點缺點 使用命令模式的步驟命令模式代碼示例合理使用AI工具自動生成代碼 情景劇場 我們來設想一個場景: 你進入一家餐館,餐館只有老板一個人(老板即廚師)。 “老板,一份小炒肉&am…

Vue插槽solt如何傳遞具名插槽的數據給子組件?

在Vue中,你可以通過作用域插槽(scoped slots)來傳遞數據給子組件。這同樣適用于具名插槽。首先,你需要在子組件中定義一個具名插槽,并通過v-slot指令傳遞數據。例如: 子組件(ChildComponent.vu…

自用RedisConfig的配置,更改key為string和value json的序列化,避免set亂的key

自用RedisConfig的配置,更改key為string和value json的序列化,避免set亂的key,使用StringRedisTemplate也可以解決,保證了redis set的值是正確的 Configuration public class RedisConfig {//更改key為string和value json的序列化…

吃透1850道真題和解析備考AMC8和AMC(1020240524持續發布)

多做真題,吃透真題和背后的知識點是備考AMC8、AMC10有效的方法之一,通過做真題,可以幫助孩子找到真實競賽的感覺,而且更加貼近比賽的內容,可以通過真題查漏補缺,更有針對性的補齊知識的短板。 今天我們繼續…

在新cloud上啟動備份數據庫

情況介紹:在云上劃拉一塊地方建立本地數據庫測試環境,通過數據庫備份包恢復數據并啟動。 1.在云上或者你自己的server上安裝Percona Server for MySQL,步驟如下 Use APT repositories - Percona Server for MySQL How to Install or Upgra…

java實現List對象轉geojson文本返回前端

1.業務需求 查詢帶有經緯度數據的list列表,將其轉為geojson格式給前端。 2.GeoJson格式說明 GeoJSON是一種對各種地理數據結構進行編碼的格式,基于Javascript對象表示法(JavaScript Object Notation, 簡稱JSON)的地理空間信息數據交換格式。GeoJSON對…

計算機系統的層次結構

操作系統的定義 操作系統(Operating System, OS)是指控制和管理整個計算機系統的硬件和軟件資源,并合理地組織調度計算機的工作和資源的分配;以提供給用戶和其他軟件方便的接口和環境;它是計算機系統中最基…

GBase 8s 如何查看回滾的事務 和對應的SQL

描述: 如何查看當前數據庫中是否有事務在回滾, 如果有, 具體是哪條 SQL 在回滾? 解決辦法: 方法1: 通過 onstat -u|grep RP; 可以獲取相關的 sessionid。 通過 onstat -g ses sid 獲取 SQL&a…

【多模態融合】Cross Modal Transformer: Towards Fast and Robust 3D Object Detection

論文鏈接:Cross Modal Transformer: Towards Fast and Robust 3D Object Detection 代碼鏈接:https://github.com/junjie18/CMT 作者:Junjie Yan, Yingfei Liu, Jianjian Sun, Fan Jia, Shuailin Li, Tiancai Wang, Xiangyu Zhang 發表單位…

字符串的周期:每一期都有那么幾位

【題目描述】 如果一個字符串可以由某個長度為k的字符串重復多次得到,則稱該串以k為周期。例 如,abcabcabcabc以3為周期(注意,它也以6和12為周期)。 輸入一個長度不超過80的字符串(不含空格),輸出其最小周期。 輸入第一行表示有T組數據,后續是T行字符串。輸出的每組…

性能測試工具

性能測試工具 1.Jmeter 環境搭建1.安裝JDK2.安裝Jmeter1.下載2.安裝3.環境配置 3.Jmeter 文件目錄介紹1.bin目錄2.docs 目錄3.printable_docs目錄4.lib目錄 4.修改默認配置1.漢化配置2.修改主題 5.元件的基本介紹6.元件的作用域作用域的原則 7.元件的執行順序 1.Jmeter 環境搭建…

Linux基礎-目錄命令

目錄文件命令 一、概述二、文件目錄1. 目錄信息1. pwd:顯示當前目錄2. cd :切換目錄3. ls:顯示目錄中的文件信息 2. 操作目錄1. mkdir : 創建目錄2. rm : 刪除目錄3. mv : 移動、重命名目錄4. cp :拷貝命令 一、概述 這里記錄一下…

【Pytorch】16.使用ImageFolder加載自定義MNIST數據集訓練手寫數字識別網絡(包含數據集下載)

數據集下載 MINST_PNG_Training在github的項目目錄中的datasets中有MNIST的png格式數據集的壓縮包 用于訓練的神經網絡模型 自定義數據集訓練 在前文【Pytorch】13.搭建完整的CIFAR10模型我們已經知道了基本搭建神經網絡的框架了,但是其中的數據集使用的torchvision…

Flutter 中的 WidgetInspector 小部件:全面指南

Flutter 中的 WidgetInspector 小部件:全面指南 Flutter 的 WidgetInspector 是一個強大的工具,它允許開發者在運行時檢查和操作他們的 widget 樹。這在調試復雜的布局和 widget 結構時尤其有用。本文將為您提供一個全面的指南,幫助您了解如…

Excel 按順序去重再編號

Excel的A有重復數據: A1Cow2Chicken3Horse4Butterfly5Cow 現在要去除重復,用自然數按順序進行編號,結果寫在相鄰列: AB1Cow12Chicken23Horse34Butterfly45Cow1 使用 SPL XLL,輸入公式并向下拖: spl(&q…