9.3 scrapy選擇器的用法铭拧,css赃蛛,xpath,正則搀菩。pyquery

scrapy至少有三種選擇器呕臂,很大很多。理論上學會兩種就夠用了肪跋。

項目組都用一個選擇器最好了歧蒋。

一定要學會正則表達式。

image
image

第一種介紹CSS選擇器

image
image
image

標簽成對出現(xiàn)澎嚣。

div疏尿,p不管div和p有什么關系,都搜索出來

div p 選擇div下的所有p元素可以是父子關系也可以是爺孫關系等易桃。

div>p 這個只能是父子關系褥琐。

還有一個函數(shù) extract_first()切片,extract()切片脫殼

image

脫殼后

image

選擇器返回的一般都是一個list晤郑,要記住敌呈,我們想要的都是結果文本

image

而li和a是父子關系贸宏。

示例:

image

p標簽,li標簽磕洪,a標簽


單獨抽離scrapy選擇器

都是借用什么找到什么吭练。如:借用class=‘top’這個屬性找到li標簽


此時做斷點調試最合適。

輔助斷點測試參考文章:

http://blog.csdn.net/lanchunhui/article/details/49514297

image

image

id唯一析显,class不唯一

012代表幾個標簽鲫咽。

image

xpath寫法

跟文件路徑很像,默認第一層/html谷异,單斜杠就是一層

雙斜杠是搜索的意思分尸,跟css什么都不帶一樣

文本和屬性,屬性是class=‘top’歹嘹,文本是li的div用text()

下圖是屬性寫法

image
image

Xpath的使用方法

尋找可以匹配 xpath query 的節(jié)點箩绍,并返回 SelectorList 的一個實例結果,單一化其所有 元素尺上。列表元素也實現(xiàn)了 Selector 的接口材蛛。query 是包含XPATH查詢請求的字符串

該方法可以通過 response.xpath() 調用

選取節(jié)點

Xpath 使用路徑表達式在 XML文檔中選取節(jié)點。節(jié)點是通過沿著路徑或者step來選取的怎抛。

下面列出了最有用的路徑表達式:

[圖片上傳失敗...(image-91e392-1517579430475)]

Xpath選擇器使用示例:

Xpath選擇方法之前在入門課程第四課已學習過了卑吭,仍然使用上面的例子:

查找ul標簽下的li元素:

sel.xpath(‘/html/body/ul/li’)

可見其返回了一個SelectorList實例

查找所有的li標簽:

sel.xpath(‘//li’)

可見其返回了一個SelectorList實例

查找第三個li標簽下的第一個p標簽:

sel.xpath(‘//li’)[2].xpath(‘./p’)[0]

可見其返回了一個SelectorList實例

同樣可以調用.extract()方法提取數(shù)據(jù):

查找a標簽下的div標簽的文本:

sel.xpath(‘/html/body/ul/li/a/div/text()’).extract_first()


RE的使用方法

正則表達式,又稱規(guī)則表達式抽诉。(英語:Regular Expression陨簇,在代碼中常簡寫為regex、regexp或RE)它通常被用來檢索迹淌、替換那些符合某個模式(規(guī)則)的文本权纤。

常用元字符:

[圖片上傳失敗...(image-df6557-1517579430475)]

[圖片上傳失敗...(image-be1293-1517579430475)]

[圖片上傳失敗...(image-a908c-1517579430475)]

匹配神器:

  • (.*)具有貪婪的性質遣疯,首先匹配到不能匹配為止,根據(jù)后面的正則表達式,會進行回溯毫别。
  • (.*?)則相反踢故,一個匹配以后运挫,就往下進行旗们,所以不會進行回溯,具有最小匹配的性質蔓涧。

pyquery的使用方法

pyquery可以讓你使用類似jQuery語法來對xml進行操作件已,pyquery語法盡可能跟jQuery語法相似 ,類似于css

pyquery使用lxml庫對xml和html進行快速的處理

pyquery這個庫目前還不是一個可以跟JavaScript代碼交互的庫

兼容性好元暴,不用各種脫殼

建議平時用pyquery

image

提文本篷扩,提屬性

image

pyquery選擇器使用示例:

打開同級目錄下的HTML文件,所獲取的jpy變量是PyQuery茉盏,可以直接使用jpy對其進行選擇:

from pyquery import PyQuery

with open('test.html' , encoding='utf-8') as f:

text = f.read()

jpy = PyQuery(text)

pass

查找class=‘top’的元素的文本:

jpy(‘.top’).text()

查找class=‘top’的元素的class屬性:

jpy(‘.top’).attr(‘class’)

查找li標簽下所有的文本鉴未,遍歷時候必須加items函數(shù)

items = jpy(‘li’)

for i in items.items():

···· print(i.text())

li的div

li的div的div

li的p

li的a的div

查找li標簽下所有的class屬性

items = jpy(‘li’)

for i in items.items():

···· print(i.attr(‘class’))

top

top

None

None

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末枢冤,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子铜秆,更是在濱河造成了極大的恐慌淹真,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件连茧,死亡現(xiàn)場離奇詭異核蘸,居然都是意外死亡,警方通過查閱死者的電腦和手機梅屉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進店門值纱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人坯汤,你說我怎么就攤上這事〔罄ⅲ” “怎么了惰聂?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長咱筛。 經(jīng)常有香客問我搓幌,道長,這世上最難降的妖魔是什么迅箩? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任溉愁,我火速辦了婚禮,結果婚禮上饲趋,老公的妹妹穿的比我還像新娘拐揭。我一直安慰自己,他們只是感情好奕塑,可當我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布堂污。 她就那樣靜靜地躺著,像睡著了一般龄砰。 火紅的嫁衣襯著肌膚如雪盟猖。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天换棚,我揣著相機與錄音式镐,去河邊找鬼。 笑死固蚤,一個胖子當著我的面吹牛娘汞,可吹牛的內容都是我干的。 我是一名探鬼主播颇蜡,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼价说,長吁一口氣:“原來是場噩夢啊……” “哼辆亏!你這毒婦竟也來了?” 一聲冷哼從身側響起鳖目,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤扮叨,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后领迈,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體彻磁,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年狸捅,在試婚紗的時候發(fā)現(xiàn)自己被綠了衷蜓。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡尘喝,死狀恐怖磁浇,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情朽褪,我是刑警寧澤置吓,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站缔赠,受9級特大地震影響衍锚,放射性物質發(fā)生泄漏。R本人自食惡果不足惜嗤堰,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一戴质、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧踢匣,春花似錦告匠、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至男娄,卻和暖如春行贪,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背模闲。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工建瘫, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人尸折。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓啰脚,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子橄浓,可洞房花燭夜當晚...
    茶點故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內容