爬虫的步骤解析内容xpath介绍_爬虫入门到精通-网页的解析(xpath)
在爬蟲(chóng)入門(mén)到精通第五講中,我們了解了如何用正則表達(dá)式去抓取我們想要的內(nèi)容.這一章我們來(lái)學(xué)習(xí)如何更加簡(jiǎn)單的來(lái)獲取我們想要的內(nèi)容.
xpath的解釋
XPath即為XML路徑語(yǔ)言(XML Path Language),它是一種用來(lái)確定XML文檔中某部分位置的語(yǔ)言。
XPath基于XML的樹(shù)狀結(jié)構(gòu),提供在數(shù)據(jù)結(jié)構(gòu)樹(shù)中找尋節(jié)點(diǎn)的能力。起初XPath的提出的初衷是將其作為一個(gè)通用的、介于XPointer與XSL間的語(yǔ)法模型。但是XPath很快的被開(kāi)發(fā)者采用來(lái)當(dāng)作小型查詢語(yǔ)言。
XPath的基本使用
要使用xpath我們需要下載lxml,在爬蟲(chóng)入門(mén)到精通-環(huán)境的搭建這一章也說(shuō)明怎么裝,如果還沒(méi)有安裝的話,那就去下載安裝吧
直接看代碼實(shí)戰(zhàn)吧。
from lxml import etree
# 定義一個(gè)函數(shù),給他一個(gè)html,返回xml結(jié)構(gòu)
def getxpath(html):
return etree.HTML(html)
# 下面是我們實(shí)戰(zhàn)的第一個(gè)html
sample1 = """
My pageWelcome to my page
This is the first paragraph.
"""
# 獲取xml結(jié)構(gòu)
s1 = getxpath(sample1)
# 獲取標(biāo)題(兩種方法都可以)
#有同學(xué)在評(píng)論區(qū)指出我這邊相對(duì)路徑和絕對(duì)路徑有問(wèn)題,我搜索了下
#發(fā)現(xiàn)定義如下圖
s1.xpath('//title/text()')
s1.xpath('/html/head/title/text()')
相對(duì)路徑與絕對(duì)路徑
總結(jié)及注意事項(xiàng)
獲取文本內(nèi)容用 text()
獲取注釋用 comment()
獲取其它任何屬性用@xx,如
@href
@src
@value
sample2 = """
- Quote 1
- Quote 2 with link
- Quote 3 with another link
Quote 4 title
...
"""
s2 = getxpath(sample2)
總結(jié)及注意事項(xiàng)
上面的li 可以更換為任何標(biāo)簽,如 p、div
位置默認(rèn)以1開(kāi)始的
最后一個(gè)用 li[last()] 不能用 li[-1]
這個(gè)一般在抓取網(wǎng)頁(yè)的下一頁(yè),最后一頁(yè)會(huì)用到
sample3 = """
- Scrapybegin
- Scrapinghub
- Scrapinghub Blog
- Quotes To Scrapeend
- Quotes To Scrapeend
"""
s3 = getxpath(sample3)
總結(jié)及注意事項(xiàng)
根據(jù)html的屬性或者文本直接定位到當(dāng)前標(biāo)簽
文本是 text()='xxx'
其它屬性是@xx='xxx'
這個(gè)是我們用到最多的,如抓取知乎的xsrf(見(jiàn)下圖)
我們只要用如下代碼就可以了
`//input[@name="_xsrf"]/@value `
sample4 = u"""
My pageWelcome to my page
This is the first paragraph.
編程語(yǔ)言python
javascript
C#JAVA
a
b
c
d
e
f
"""
s4 = etree.HTML(sample4)
總結(jié)及注意事項(xiàng)
想要獲取某個(gè)標(biāo)簽下所有的文本(包括子標(biāo)簽下的文本),使用string
如
123來(lái)獲取我啊
,這邊如果想要得到的文本為123來(lái)獲取我啊",則需要使用stringstarts-with 匹配字符串前面相等
contains 匹配任何位置相等
當(dāng)然其中的(@class,"content")也可以根據(jù)需要改成(text(),"content")或者其它屬性(@src,"content")
最后再次總結(jié)一下
看完本篇文章后,你應(yīng)該要
能學(xué)會(huì)基本所有的xpath的使用
css和這個(gè)的原理一樣,所以就不介紹了,可以參考
與50位技術(shù)專家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的爬虫的步骤解析内容xpath介绍_爬虫入门到精通-网页的解析(xpath)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 特斯拉供应商 IDRA 将为沃尔沃汽车提
- 下一篇: java链表实现_数据结构——基于jav