Xpath匹配之避坑指南

2021-10-07 19:19:22 字數 1333 閱讀 4470

目錄

一、xpath匹配查詢工具

二、路徑中存在tbody導致匹配為空

三、交錯標籤的匹配

四、跳過某個序號的標籤進行匹配

五、匹配項標籤有差異,匹配時個數不一致

六、不定時更新...

chrome上有個外掛程式叫「xpath helper」,裝上後,按「ctrl+shift+x」就可以召喚和關掉,使用很方便,方便除錯xpath路徑寫的是否正確。

當匹配路徑中存在tbody時,會匹配到空列表,原因是瀏覽器對 xpath 進行了 「優化」 ,導致從瀏覽器裡直接複製出來的 xpath 放在python中執行匹配不到。例如下面兩種情況都是路徑中存在tbody:

*** = ***x.xpath("//div[@class='tabset']/table[2]/tbody")
*** = ***x.xpath("//div[@class='tabset']/table[2]/tbody/tr/td[2]/a/text()")
這時候,只要刪掉路徑中的「tbody」即可。

對於交錯的標籤,有兩種解決辦法的思路。(1)可以繞開這個標籤,找其他的標籤或者屬性來匹配。(2)可以把兩類分開匹配,a類匹配完了,再匹配b類的,合在一起即可。

比如這裡想跳過第乙個標籤,可以用到position>1。

這時候要想辦法繞開這個多出來的「span」標籤。

xx.xpath("tr/td[2]/span/a/@href").extract()

# 繞過span標籤

***x.xpath("tr/td[2]//a/@href").extract()

整理不易...

MySql 之 left join 避坑指南

優質文章,第一時間送達 這裡我先給出乙個場景,並丟擲兩個問題,如果你都能答對那這篇文章就不用看了。select from classes id name 1 一班 2 二班 3 三班 4 四班select from students id class id name gender 1 1 小明 m ...

MySQL 之 LEFT JOIN 避坑指南

假設有乙個班級管理應用,有乙個表classes,存了所有的班級 有乙個表students,存了所有的學生,具體資料如下 create table classes id int 10 unsigned not null auto increment,name varchar 255 default n...

MySQL 之 LEFT JOIN 避坑指南

這裡我先給出乙個場景,並丟擲兩個問題,如果你都能答對那這篇文章就不用看了。假設有乙個班級管理應用,有乙個表classes,存了所有的班級 有乙個表students,存了所有的學生,具體資料如下 那麼現在有兩個需求 找出每個班級的名稱及其對應的女同學數量 找出一班的同學總數 對於需求1,大多數人不假思...