日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

xpath学习

發布時間:2024/9/19 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 xpath学习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

xpath學習

parsel包

該包主要用來將請求后的字符串格式解析成re,xpath,css進行內容的匹配,主要是對XML和HTML等進行分析。

xpath語法

/ #根節點或節點間的過渡 // #跨越節點獲取節點 . #選取當前節點 .. #當前節點的父節點 @ #選取屬性 text() #選取文本 [index] #根據index獲取第index個標簽(index從1開始) [@Classname] #根據屬性名獲取標簽 contains(p,content) #模糊查詢(p定位,content匹配字段)

一些語法示例

#根節點下的html的標簽中的body標簽中的div標簽中的div標簽 /html/body/div/div #獲取所以a標簽 //a#獲取html的標簽中的body標簽中的所有a標簽(可以跨越節點,不必一定是子節點) /html/body//a#在當前節點下的a標簽 ./a#當前節點的父標簽中的a標簽 ../a#根節點下的html的標簽中的body標簽中的a標簽中的class屬性 /html/body/a/@class#li便簽下的第3個li標簽 //li[3]#通過屬性定位 //a[@href=""]#html的標簽中的body標簽中的a標簽中的文本內容 /html/body/a/text()#獲取a標簽,并且屬性name中有字段"myname" //a[contains(@name,"myname")]

一些官方例子:

假設有HTMLcode

<html><head><base href='http://example.com/' /><title>Example website</title></head><body><div id='images'><a href='image1.html'>Name: My image 1 <br /><img src='image1_thumb.jpg' /></a><a href='image2.html'>Name: My image 2 <br /><img src='image2_thumb.jpg' /></a><a href='image3.html'>Name: My image 3 <br /><img src='image3_thumb.jpg' /></a><a href='image4.html'>Name: My image 4 <br /><img src='image4_thumb.jpg' /></a><a href='image5.html'>Name: My image 5 <br /><img src='image5_thumb.jpg' /></a></div></body> </html>

那么我們可以這樣創建選擇器selector。selector支持解析css,xpath,re語法等。

>>> import requests >>> from parsel import Selector >>> url = 'https://parsel.readthedocs.org/en/latest/_static/selectors-sample1.html' >>> text = requests.get(url).text #獲取網頁的str文本 >>> selector = Selector(text=text) #解析字符串獲取解析器

進行xpath解析

#我們可以通過selector.xpath(xpath)方法進行xpath解析,返回解析器 #使用getall()和get()獲取文本信息 #使用extract()獲取信息和getall()一樣#這里放回的是解析結果 >>> selector.xpath('//title/text()') [<Selector xpath='//title/text()' data='Example website'>]#獲取所有解析的文本的列表 >>> selector.xpath('//title/text()').getall() ['Example website']#獲取第一個解析的文本 >>> selector.xpath('//title/text()').get() 'Example website'#同.getall() >>> selector.xpath('//title/text()').extract() ['Example website']

其他例子:

import parsel html_str='''<html><head><base href='http://example.com/' /><title>Example website</title></head><body><div id='images'><a href='image1.html'>Name: My image 1 <br /><img src='image1_thumb.jpg' /></a><a href='image2.html'>Name: My image 2 <br /><img src='image2_thumb.jpg' /></a><a href='image3.html'>Name: My image 3 <br /><img src='image3_thumb.jpg' /></a><a href='image4.html'>Name: My image 4 <br /><img src='image4_thumb.jpg' /></a><a href='image5.html'>Name: My image 5 <br /><img src='image5_thumb.jpg' /></a></div></body> </html> ''' selector = parsel.Selector(html_str) print(selector) print(type(selector)) selectorList = selector.xpath('/html/head/title/text()') print(selectorList) print(type(selectorList)) result = selectorList.extract() print(result) print(type(result)) result2 = selectorList.getall() print(result2) print(type(result2)) result3 = selectorList.extract_first() print(result3) print(type(result3)) result4 = selectorList.extract_first() print(result4) print(type(result4))

總結

以上是生活随笔為你收集整理的xpath学习的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。