日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

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

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

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

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

然后我們入門了python里一個非常好用的HTTP客戶端庫:Requests,用來請求網址,以及得到一些響應內容,例如網頁的源代碼。

得到網頁源代碼之后,我們就可以來對網頁中的一些信息做一些解析提取。

我們這里介紹lxml庫和XPath語法來幫助我們完成信息的提取。

# 本文Python代碼版本2.7

XPath

XPath 是一門在 XML 文檔中查找信息的語言。XPath 可用來在 XML 文檔中對元素和屬性進行遍歷,我們用來提取格式為HTML的網頁源碼效率也相當高,可以遍歷html的各個標簽和屬性,來定位到我們需要的信息的位置,并提取。

1,安裝

需要安裝lxml庫

pip install lxml

2,語法

舉例子之前來個常規語法介紹。詳細可參見W3school的XPath語法介紹。

3,案列說明

直接來個案例吧。這個網址:豆瓣電影排行榜

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

鼠標移動到“豆瓣電影排行榜”,對應右邊的開發者工具就會選中相應的標簽,即圖中的:

豆瓣電影排行榜

那我們試著用xpath來獲取這個這個h1標簽:

# coding:utf-8

import requests

# 上節的requests請求網頁,得到網頁源代碼

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

r = requests.get(url).content

# 導入lxml庫和html.fromStringh函數來解析html

from lxml import html

# 調用html.fromString函數解析html源代碼

sel = html.fromstring(r)

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

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

#這里返回的類型列表,而這個網頁中只有一個h1標簽,索引為0來得到title

print type(title)

print title[0]

打印出來就得到我們需要的h1標簽的標題:

#

# 豆瓣電影排行榜

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

要想精確的定位到該標簽,我們能可以先定位到這個a標簽的父標簽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標簽

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

# 提取鏈接

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

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

for link in links:

print link

控制臺打印輸出:

4,最后

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

2,w3school的xpath語法教程:XPath 教程

總結

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

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