python xpath常用代碼功能

1、從文件中讀取html內容,然后xpath加載?

with open('FilePath', 'r',encoding='utf8') as file:html = file.read()  
tree = etree.HTML(html)

2、基本定位語法

/?? ?從根節點開始選取?? ?/html/div/span
//?? ?從任意節點開始選取?? ?//input
.?? ?選取當前節點?? ??
..?? ?選取當前節點的父節點? ?

3、正則表達式匹配內容

? CitedNames = item.xpath('.//a[re:test(text(),"[^View All]")]/text()',namespaces={"re": "http://exslt.org/regular-expressions"})

其中[^View All]是正則表達式部分,這里是text不等于View All的;需要注意的是,如果是等于,則不需要[],即直接用,如:

 skill = tree.xpath('//div[@class="nova-c-card__body nova-c-card__body--spacing-inherit"]//b[re:test(text(),"Skills and Expertise")]/text()',namespaces={"re": "http://exslt.org/regular-expressions"})

xpath中的.是當前節點開始;item是我當前要處理的節點。

說明:這里我使用的是re:test,因為re:test比re:match更高效,因為test返回的是一個布爾值,而match返回的是滿足條件的數組,隨意根據自己的需求調整。

不包括的寫法:not(contains(xx,"具體內容"),如:

 #text中不包括[...]的
resInfo['authors'] = researchItem[3].xpath('.//span[not(contains(text(),"[...]"))]/text()')
#如果是屬性中不包括的則,如,a中href不包含more的
resInfo['authors'] = researchItem[3].xpath('.//a[not(contains(@href,"more"))]/text()')

4、當前節點的父節點的父節點

..為當前節點的父節點的選擇,父節點的父節點即是../../;如:

 skill[0].xpath('../..//a[re:test(text(),"[^Show more]")]/text()',namespaces={"re": "http://exslt.org/regular-expressions"})

5、根據id或class檢索

#從根節點開始找id為xxx的div 
researchItemDiv = tree.xpath('//div[@id="research-items"]')#從根節點出發找class為xxx的div內的文本
aboutArr = tree.xpath('//div[@class="nova-c-card__body nova-c-card__body--spacing-inherit"]//text()')

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

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

相關文章

Web開發:<br>標簽的作用

br作用 介紹基本用法常見用途注意事項使用CSS替代 介紹 在Web開發中&#xff0c;<br> 標簽是一個用于插入換行符的HTML標簽。它是“break”的縮寫&#xff0c;常用于需要在文本中強制換行的地方。<br> 標簽是一個空標簽&#xff0c;這意味著它沒有結束標簽。 基本…

Python小工具—txt轉excel和word

1.txt轉excel import openpyxl# 創建一個新的Excel工作簿 wb = openpyxl.Workbook() sheet = wb.active# 題干和答案的標題 sheet[A1] = 題干 sheet[B1] = 答案# 打開txt文件并讀取內容 with open(xiti.txt, r, encoding=utf-8) as file:lines = file.readlines()# 初始變量 c…

VisualTreeHelper.GetChildrenCount

在WPF&#xff08;Windows Presentation Foundation&#xff09;中&#xff0c;VisualTreeHelper.GetChildrenCount 是一個非常有用的方法&#xff0c;用于獲取指定視覺對象的子元素數量。這對于遍歷復雜的用戶界面樹結構以進行查找、操作或檢查特定元素是非常有幫助的。 Visu…

【java深入學習第7章】用 Spring Boot 和 Java Mail 輕松實現郵件發送功能

引言 在現代的企業應用中&#xff0c;郵件發送是一個非常常見的功能。無論是用戶注冊后的驗證郵件&#xff0c;還是系統通知郵件&#xff0c;郵件服務都扮演著重要的角色。本文將介紹如何在Spring Boot項目中整合Java Mail&#xff0c;實現發送郵件的功能。 一、準備工作 在…

【Ubuntu】安裝使用pyenv - Python版本管理

當我們在Ubuntu上使用Python進行開發的時候&#xff0c;可能會遇到版本不兼容的問題&#xff0c;當然你可以選擇使用apt的方式安裝不同版本的python環境 但是存在一定的問題&#xff1a;安裝不同版本的Python通常不會改變默認的python3命令指向的版本&#xff0c;而且就算你進行…

分布式對象存儲minio

本教程minio 版本&#xff1a;RELEASE.2021-07-*及以上 1. 分布式文件系統應用場景 互聯網海量非結構化數據的存儲需求 電商網站&#xff1a;海量商品圖片視頻網站&#xff1a;海量視頻文件網盤 : 海量文件社交網站&#xff1a;海量圖片 1.1 Minio介紹 MinIO 是一個基于Ap…

ubuntu服務器部署vue springboot前后端分離項目

上傳構建好的vue前端文件 vscode構建vue項目&#xff0c;會生成dist目錄 npm run build在服務器root目錄新建/projects/www目錄&#xff0c;把dist目錄下的所有文件&#xff0c;上傳到此目錄中 上傳ssl證書 上傳ssl證書到/projects目錄中 配置nginx 編輯 /etc/nginx/site…

微服務邊界守衛:Eureka中服務隔離策略的實現

微服務邊界守衛&#xff1a;Eureka中服務隔離策略的實現 在微服務架構中&#xff0c;服務隔離是一項關鍵策略&#xff0c;用于確保服務之間的故障不會相互影響&#xff0c;同時提供更加安全和穩定的運行環境。Eureka作為Netflix開源的服務發現框架&#xff0c;提供了一些機制來…

Java 網絡協議面試題答案整理,最新面試題

TCP和UDP的主要區別是什么? TCP(傳輸控制協議)和UDP(用戶數據報協議)的主要區別在于TCP是面向連接的協議,而UDP是無連接的協議。這導致了它們在數據傳輸方式、可靠性、速度和使用場景方面的不同。 1、連接方式: TCP是面向連接的協議,數據傳輸前需要三次握手建立連接。U…

區塊鏈與云計算的融合:新時代數據安全的挑戰與機遇

隨著信息技術的迅猛發展&#xff0c;云計算和區塊鏈技術作為兩大前沿技術在各自領域內展示出了巨大的潛力。而它們的結合&#xff0c;即區塊鏈與云計算的融合&#xff0c;正在成為數據安全領域的新趨勢。本文將探討這一融合對數據安全帶來的挑戰和機遇&#xff0c;以及其在企業…

平替ChatGPT的多模態智能體來了

在人工智能領域&#xff0c;多模態技術的融合與應用已成為推動技術革新的關鍵。今天&#xff0c;我們用智匠AI實現了完全由國產模型驅動的多模態智能體——智醬v0.1.0&#xff0c;它不僅能夠媲美ChatGPT的多模態能力&#xff0c;更在聯網搜索、圖片識別、畫圖及圖表生成等方面展…

redis原理之底層數據結構(二)-壓縮列表

1.緒論 壓縮列表是redis最底層的結構之一&#xff0c;比如redis中的hash&#xff0c;list在某些場景下使用的都是壓縮列表。接下來就讓我們看看壓縮列表結構究竟是怎樣的。 2.ziplist 2.1 ziplist的組成 在低版本中壓縮列表是由ziplist實現的&#xff0c;我們來看看他的結構…

Stable Diffusion AI繪畫全攻略:從理論到實戰,解鎖創意圖畫的魔法之門

在科技的飛速發展中&#xff0c;Stable Diffusion AI繪畫技術為藝術創作帶來了前所未有的革命性變化。這項技術由CompVis、Stability AI和LAION聯合研發&#xff0c;通過深度學習模型&#xff0c;將文字描述轉化為生動的藝術作品&#xff0c;極大地拓寬了創意與想象的邊界。本文…

大數據面試SQL題-筆記01【運算符、條件查詢、語法順序、表連接】

大數據面試SQL題復習思路一網打盡&#xff01;(文檔見評論區)_嗶哩嗶哩_bilibiliHive SQL 大廠必考常用窗口函數及相關面試題 大數據面試SQL題-筆記01【運算符、條件查詢、語法順序、表連接】大數據面試SQL題-筆記02【...】 目錄 01、力扣網-sql題 1、高頻SQL50題&#xff08…

TCP、UDP、TCP與UDP的區別及聯系

目錄 TCP和UDP區別1.連接2.交互個數3.可靠性4.傳輸方式5.適用場景 怎么實現一個可靠的UDP傳輸TCP詳解UDP詳解 TCP和UDP區別 1.連接 TCP 面向連接的&#xff0c;傳輸數據前先要建立連接。 UDP 是不需要連接&#xff0c;即刻傳輸數據。 2.交互個數 TCP 是一對一通信。 UDP 支…

數據結構——hash(hashmap源碼探究)

hash是什么&#xff1f; hash也稱為散列&#xff0c;就是把任意長度的輸入&#xff0c;通過散列算法&#xff0c;變成固定長度的輸出&#xff0c;這個輸出值就是散列值。 舉例來說明一下什么是hash&#xff1a; 假設我們要把1~12存入到一個大小是5的hash表中&#xff0c;我們…

礦產資源潛力預測不確定性評價

研究目的&#xff1a; 不確定性評估&#xff1a; 到底什么叫不確定性&#xff0c;簡單來說就是某區域內的礦產資源量&#xff0c;并不確定到底有多少&#xff0c;你需要給出一個評估或者分布。 研究方法&#xff1a; 1.以模糊集來表示某些量&#xff1a; 關于什么是模糊集&am…

信通院全景圖發布 比瓴科技領跑軟件供應鏈安全,多領域覆蓋數字安全服務

近日&#xff0c;中國信息通信研究院在2024全球數字經濟大會—數字安全生態建設專題論壇正式發布首期《數字安全護航技術能力全景圖》&#xff08;以下簡稱全景圖&#xff09;。 比瓴科技入選軟件供應鏈安全賽道“開發流程安全管控、交互式安全測試、靜態安全測試、軟件成分分…

智慧水利:邁向水資源管理的新時代,結合物聯網、云計算等先進技術,闡述智慧水利解決方案在提升水災害防控能力、優化水資源配置中的關鍵作用

本文關鍵詞&#xff1a;智慧水利、智慧水利工程、智慧水利發展前景、智慧水利技術、智慧水利信息化系統、智慧水利解決方案、數字水利和智慧水利、數字水利工程、數字水利建設、數字水利概念、人水和協、智慧水庫、智慧水庫管理平臺、智慧水庫建設方案、智慧水庫解決方案、智慧…

數據分析——numpy教程

1.NumPy&#xff1a; 是Python的一個開源的數值計算庫。可以用來存儲和處理大型矩陣&#xff0c;比python自身的嵌套列表結構要高效&#xff0c;支持大量的維度數組與矩陣運算&#xff0c;此外也針對數組運算提供大量的數學函數庫&#xff0c;包括數學、邏輯、形狀操作、排序、…