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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python xpath爬虫_Python爬虫(2):XPath语法

發(fā)布時(shí)間:2025/3/20 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python xpath爬虫_Python爬虫(2):XPath语法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

OK,上次我們說到了網(wǎng)頁(yè)爬蟲的一個(gè)思路:首先說一下網(wǎng)頁(yè)爬蟲的整個(gè)思路方法:先爬取整個(gè)網(wǎng)頁(yè),也就是將網(wǎng)頁(yè)的源代碼給獲取下來

爬取下來的網(wǎng)頁(yè)再通過文本解析提取,找到我們需要的信息,可以是圖片或者文字

然后我們?nèi)腴T了python里一個(gè)非常好用的HTTP客戶端庫(kù):Requests,用來請(qǐng)求網(wǎng)址,以及得到一些響應(yīng)內(nèi)容,例如網(wǎng)頁(yè)的源代碼。

得到網(wǎng)頁(yè)源代碼之后,我們就可以來對(duì)網(wǎng)頁(yè)中的一些信息做一些解析提取。

我們這里介紹lxml庫(kù)和XPath語(yǔ)法來幫助我們完成信息的提取。

# 本文Python代碼版本2.7

XPath

XPath 是一門在 XML 文檔中查找信息的語(yǔ)言。XPath 可用來在 XML 文檔中對(duì)元素和屬性進(jìn)行遍歷,我們用來提取格式為HTML的網(wǎng)頁(yè)源碼效率也相當(dāng)高,可以遍歷html的各個(gè)標(biāo)簽和屬性,來定位到我們需要的信息的位置,并提取。

1,安裝

需要安裝lxml庫(kù)

pip install lxml

2,語(yǔ)法

舉例子之前來個(gè)常規(guī)語(yǔ)法介紹。詳細(xì)可參見W3school的XPath語(yǔ)法介紹。

3,案列說明

直接來個(gè)案例吧。這個(gè)網(wǎng)址:豆瓣電影排行榜

這里用谷歌瀏覽器打開開發(fā)者工具查看網(wǎng)頁(yè)源代碼(windows在谷歌瀏覽器界面按F12或者‘設(shè)置 -> 開發(fā)者工具’。Mac用戶兩個(gè)手指輕點(diǎn)頁(yè)面-> “檢查”)

鼠標(biāo)移動(dòng)到“豆瓣電影排行榜”,對(duì)應(yīng)右邊的開發(fā)者工具就會(huì)選中相應(yīng)的標(biāo)簽,即圖中的:

豆瓣電影排行榜

那我們?cè)囍脁path來獲取這個(gè)這個(gè)h1標(biāo)簽:

# coding:utf-8

import requests

# 上節(jié)的requests請(qǐng)求網(wǎng)頁(yè),得到網(wǎng)頁(yè)源代碼

url = 'https://movie.douban.com/chart'

r = requests.get(url).content

# 導(dǎo)入lxml庫(kù)和html.fromStringh函數(shù)來解析html

from lxml import html

# 調(diào)用html.fromString函數(shù)解析html源代碼

sel = html.fromstring(r)

# 提取h1標(biāo)簽,text()獲取該標(biāo)簽下的文本

title = sel.xpath("//h1/text()")

#這里返回的類型列表,而這個(gè)網(wǎng)頁(yè)中只有一個(gè)h1標(biāo)簽,索引為0來得到title

print type(title)

print title[0]

打印出來就得到我們需要的h1標(biāo)簽的標(biāo)題:

#

# 豆瓣電影排行榜

再來看看提取屬性方法,例如下面的這些電影的鏈接列表,是在a標(biāo)簽中的href屬性中。

要想精確的定位到該標(biāo)簽,我們能可以先定位到這個(gè)a標(biāo)簽的父標(biāo)簽div,

...

因此可以寫成:

# coding:utf-8

import requests

from lxml import html

url = 'https://movie.douban.com/chart'

r = requests.get(url).content

sel = html.fromstring(r)

# 提取h1標(biāo)簽

title = sel.xpath("//h1/text()")

# 提取鏈接

links = sel.xpath('//div[@class="pl2"]/a/@href')

# 上面返回的是所有符合條件的鏈接的列表,for循環(huán)來讀取一下

for link in links:

print link

控制臺(tái)打印輸出:

4,最后

以上就是xpath的常見的用法,提取網(wǎng)頁(yè)信息一個(gè)高效的工具。大家可以試試提取這個(gè)網(wǎng)站的電影名稱,評(píng)分等等信息來練練手。

2,w3school的xpath語(yǔ)法教程:XPath 教程

總結(jié)

以上是生活随笔為你收集整理的python xpath爬虫_Python爬虫(2):XPath语法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。