摘要:起初的提出的初衷是將其作為一個通用的介于與間的語法模型。的基本使用要使用我們需要下載,在爬蟲入門到精通環(huán)境的搭建這一章也說明怎么裝,如果還沒有安裝的話,那就去下載安裝吧直接看代碼實戰(zhàn)吧。
本文章屬于爬蟲入門到精通系統(tǒng)教程第六講
在爬蟲入門到精通第五講中,我們了解了如何用正則表達式去抓取我們想要的內(nèi)容.這一章我們來學(xué)習(xí)如何更加簡單的來獲取我們想要的內(nèi)容.
xpath的解釋XPath的基本使用XPath即為XML路徑語言(XML Path Language),它是一種用來確定XML文檔中某部分位置的語言。
XPath基于XML的樹狀結(jié)構(gòu),提供在數(shù)據(jù)結(jié)構(gòu)樹中找尋節(jié)點的能力。起初XPath的提出的初衷是將其作為一個通用的、介于XPointer與XSL間的語法模型。但是XPath很快的被開發(fā)者采用來當(dāng)作小型查詢語言。
要使用xpath我們需要下載lxml,在爬蟲入門到精通-環(huán)境的搭建這一章也說明怎么裝,如果還沒有安裝的話,那就去下載安裝吧
直接看代碼實戰(zhàn)吧。
from lxml import etree # 定義一個函數(shù),給他一個html,返回xml結(jié)構(gòu) def getxpath(html): return etree.HTML(html) # 下面是我們實戰(zhàn)的第一個html sample1 = """My page Welcome to my page
This is the first paragraph.
""" # 獲取xml結(jié)構(gòu) s1 = getxpath(sample1) # 獲取標(biāo)題(兩種方法都可以) #有同學(xué)在評論區(qū)指出我這邊相對路徑和絕對路徑有問題,我搜索了下 #發(fā)現(xiàn)定義如下圖 s1.xpath("http://title/text()") s1.xpath("/html/head/title/text()")
相對路徑與絕對路徑
獲取文本內(nèi)容用 text()
獲取注釋用 comment()
獲取其它任何屬性用@xx,如
@href
@src
@value
sample2 = """
上面的li 可以更換為任何標(biāo)簽,如 p、div
位置默認以1開始的
最后一個用 li[last()] 不能用 li[-1]
這個一般在抓取網(wǎng)頁的下一頁,最后一頁會用到
sample3 = """""" s3 = getxpath(sample3) 總結(jié)及注意事項
根據(jù)html的屬性或者文本直接定位到當(dāng)前標(biāo)簽
文本是 text()="xxx"
其它屬性是@xx="xxx"
這個是我們用到最多的,如抓取知乎的xsrf(見下圖)
我們只要用如下代碼就可以了
`//input[@name="_xsrf"]/@value `
sample4 = u"""總結(jié)及注意事項My page Welcome to my page
This is the first paragraph.
a
b
c
d
e
f
""" s4 = etree.HTML(sample4)
想要獲取某個標(biāo)簽下所有的文本(包括子標(biāo)簽下的文本),使用string
如
123來獲取我啊
,這邊如果想要得到的文本為123來獲取我啊",則需要使用stringstarts-with 匹配字符串前面相等
contains 匹配任何位置相等
當(dāng)然其中的(@class,"content")也可以根據(jù)需要改成(text(),"content")或者其它屬性(@src,"content")
最后再次總結(jié)一下看完本篇文章后,你應(yīng)該要
能學(xué)會基本所有的xpath的使用
css和這個的原理一樣,所以就不介紹了,可以參考
CSS 選擇器參考手冊
所有代碼在kimg1234/pachong
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/38584.html
摘要:以上是如果你想精通網(wǎng)絡(luò)爬蟲的學(xué)習(xí)研究路線,按照這些步驟學(xué)習(xí)下去,可以讓你的爬蟲技術(shù)得到非常大的提升。 作者:韋瑋 轉(zhuǎn)載請注明出處 隨著大數(shù)據(jù)時代的到來,人們對數(shù)據(jù)資源的需求越來越多,而爬蟲是一種很好的自動采集數(shù)據(jù)的手段。 那么,如何才能精通Python網(wǎng)絡(luò)爬蟲呢?學(xué)習(xí)Python網(wǎng)絡(luò)爬蟲的路線應(yīng)該如何進行呢?在此為大家具體進行介紹。 1、選擇一款合適的編程語言 事實上,Python、P...
摘要:河北陽光理政投訴板塊開始擼代碼今天再次嘗試使用一個新的模塊,它可以配合快速解析文檔,官網(wǎng)網(wǎng)站利用安裝,如果安裝失敗,可以在搜索引擎多搜搜,內(nèi)容很多,有解決方案。 1.河北陽光理政投訴板塊-寫在前面 之前幾篇文章都是在寫圖片相關(guān)的爬蟲,今天寫個留言板爬出,為另一套數(shù)據(jù)分析案例的教程做做準(zhǔn)備,作為一個河北人,遵紀(jì)守法,有事投訴是必備的技能,那么咱看看我們大河北人都因為什么投訴過呢? 今天要...
摘要:河北陽光理政投訴板塊開始擼代碼今天再次嘗試使用一個新的模塊,它可以配合快速解析文檔,官網(wǎng)網(wǎng)站利用安裝,如果安裝失敗,可以在搜索引擎多搜搜,內(nèi)容很多,有解決方案。 1.河北陽光理政投訴板塊-寫在前面 之前幾篇文章都是在寫圖片相關(guān)的爬蟲,今天寫個留言板爬出,為另一套數(shù)據(jù)分析案例的教程做做準(zhǔn)備,作為一個河北人,遵紀(jì)守法,有事投訴是必備的技能,那么咱看看我們大河北人都因為什么投訴過呢? 今天要...
閱讀 2265·2021-09-27 13:35
閱讀 561·2019-08-30 15:55
閱讀 810·2019-08-30 15:53
閱讀 555·2019-08-30 15:52
閱讀 2146·2019-08-30 12:59
閱讀 2269·2019-08-29 16:42
閱讀 1385·2019-08-26 18:26
閱讀 2467·2019-08-26 13:48