爬蟲6 使用xpath語法,解析HTML

2022-06-18 11:48:09 字數 1831 閱讀 1267

簡述:beautifulsoup 外, python常用的解析html、xml的第三方庫:lxml, lxml中語法為xpath

例項1:提取『某點』 月票榜中部分作品的作者(列表)

1. 使用lxml中的etree提取響應資料中的html標籤樹。

2. 使用xpath語法來解析標籤樹。

"""

lxml使用xpath語法,來解析html

"""from lxml import

etree

import

requests

from fake_useragent import

useragent

url = "

"headers =

r = requests.get(url, headers=headers)

print('

---返回值:

', r.status_code, '

---響應編碼:

', r.encoding)

print('

返回資料:

', r.text)

#定義etree的html物件

e =etree.html(r.text)

#使用.xpath語法,編寫邏輯

#'//h4/a/text()': 某h4標籤下的a標籤中的內容

#'//p[@class="author"]/a[1]/text()': 某p標籤,class屬性為「author」,下面的第乙個a標籤,下的內容

book_names = e.xpath('

//h4/a/text()')

authors = e.xpath('

//p[@class="author"]/a[1]/text()')

print

(book_names)

print(authors)

例項2:提取 '某點' 某部作品的某一章免費章節

"""

例項: 使用xpath、beautifulsoup解析出起點某作品單章內容

"""from lxml import

etree

import

requests

from fake_useragent import

useragent

from bs4 import

beautifulsoup

url = "

"headers =

r = requests.get(url, headers=headers)

content =r.text

print('

---返回值:

', r.status_code, '

---響應編碼:

', r.encoding)

#print('返回資料: ', r.text)

#1. 使用xpath 解析出章節內容

e =etree.html(r.text)

content = e.xpath('

//div[@class="read-content j_readcontent"]/p/text()')

print

(content)

#2. 使用beautifulsoup 解析出章節內容

#soup = beautifulsoup(r.text, 'html.parser')

#按照字典的形式給attrs引數賦值

#print(soup.find_all(name='div', attrs=))

python爬蟲 xpath解析語法

xpath 是一門在xml或者html文件中導航查詢資訊的語法,對html有很好的支援 xpath 是乙個w3c的標準 xpath 包含標準庫 2.1節點擊擇 表示式 nodename nodename 選取此節點的所有子節點 從根節點擊取 div 選取所有div子元素,而不考慮他們的位置 選取當前...

爬蟲 xpath語法

使用 獲取整個頁面當中的元素,然後寫標籤名,然後再寫謂詞進行提取。比如 div class abc 和 的區別 代表只獲取直接子節點。獲取子孫節點。一般 用得比較多。當然也要視情況而定。contains 有時候某個屬性中包含了多個值,那麼可以使用contains函式。示例 如下 div contai...

爬蟲 解析內容 xpath

from lxml import etree text harry potter 29.99 learning xml 39.95 print type text 將字串轉化為element物件 html etree.html text print html print type html 將ele...