目錄
一、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,大多數人不假思...