Spider學習筆記(一) xpath基礎操作

2021-08-24 18:03:40 字數 1411 閱讀 7948

# xpath

xpath即為xml路徑語言,它是一種用來確定xml(標準通用標記語言的子集)文件中某部分位置的語言。xpath基於xml的樹狀結構,有不同型別的節點,包括元素節點,屬性節點和文字節點,提供在資料結構樹中找尋節點的能力。

# 什麼是 xpath?

- xpath 使用路徑表示式在 xml 文件中進行導航

- xpath 包含乙個標準函式庫

- xpath 是 xslt 中的主要元素

- xpath 是乙個 w3c 標準

xpath基礎操作樣例(使用xpath列印的都是列表)

import lxml

from lxml import etree

html = '''

'''# mytree = lxml.etree.parse('./xpath.html')

mytree = lxml.etree.html(html)

print(mytree)

# / 從根開始

print(mytree.xpath('/html/head/title/text()'))

# // 所有

print(mytree.xpath('/html/body/div/ul'))

print(mytree.xpath('//ul'))

# . 當前

ul = mytree.xpath('//ul')[0]

li = ul.xpath('./li')

print(li)

# 謂語

li2 = mytree.xpath('//li[@id="li2"]')

for l in li2:

print(l.text)

print(l.xpath('./text()'))

l3 = mytree.xpath('//div//li[3]/text()')

print(l3)

# last() first()

li3 = mytree.xpath('//div//li[last()]/text()')

print(li3, '===')

# 倒數第二個

print(mytree.xpath('//div//li[last()-1]/text()'), '----')

# 從第三個li開始

# position()定位 < > = >= <= !=

print(mytree.xpath('//div//li[position() != 2]'))

# 所有class=ul | 或

print(mytree.xpath('//ul[@class="ul"] | //p[@class="ul"]'),'*****')

print(mytree.xpath('//*[@class="ul"]'))

Spider學習筆記(六) 爬蟲部署

在雲服務建立乙個虛擬環境 python virtualenv envname source 進入虛擬環境 安裝scrapyd pip install scrapyd 安裝scrapy pip install scrapy 安裝scrapy pip install requests 啟動命令 scra...

網路蜘蛛Spider的邏輯Logic(一)

spider又叫webcrawler或者robot,是乙個沿著鏈結漫遊web 文件集合的程式。它一般駐留在伺服器上,通過給定的一些url,利用http等標準協議讀取相應文件,然後以文件中包括的所有未訪問過的url作為新的起點,繼續進行漫遊,直到沒有滿足條件的新url為止。webcrawler的主要功...

學習筆記一

lisp 最重要的一種執行模式之一 repl that endless cycle of reading,evaluating,and printing is why it s called the read eval print loop or repl.第乙個lisp程式 在repl模式下執行l...