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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

xpath提取html属性,xpath提取 html标签的文字内容

發(fā)布時間:2025/5/22 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 xpath提取html属性,xpath提取 html标签的文字内容 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言:

做爬蟲的過程中經(jīng)常需要對html標簽的文字內(nèi)容進行提取,有幾種情況 1.提取屬性的值,2.提取標簽的值,3.提取段落的所有文字

本文用的是 scrapy 的框架,用 response 做響應

1.提取屬性的值

response.xpath("//a/@title").get(),可以直接得到 title 的值為:這是一個標題

注:get 方法是等同于extract()[0],getall 方法等同于extract()

官方文檔1.5以后推薦使用 get 系列方法代替原來的 extract 系列方法

兩種方法可以同時使用,看個人喜好

2.提取標簽的值

這才是標題

response.xpath("//a/text()").get(),可以得到 a 標簽的值:這才是標題

3.提取段落所有文字

左青龍

右白虎

老牛在當中

龍頭在胸口

response.xpath("//div[@class='test']").get()

這種方式可以得到值為 test 的 div 標簽下的所有標簽組,即:

左青龍

右白虎

老牛在當中

龍頭在胸口

瀏覽器展示是沒問題的,但是我們需要純文字用于匹配

為了去除標簽,需要加一個 string 的方法,即:

response.xpath("string(//div[@class='test']")).get(),這樣可以獲取純文字:

左青龍右白虎老牛在當中龍頭在胸口

4.html 類型的字符串清除 html 標簽

這是對3的補充,給個栗子 某次返回直接給一個html類型的字符串,記住是字符串,不是從response獲取到的 返回json

{"title": 這是標題,

"content":"

左青龍

右白虎

老牛在當中

龍頭在胸口

"}

這時候response.body是一個json結(jié)構(gòu)體,直接用xpath不行的,所以需要做一個轉(zhuǎn)換

import json

from scrapy import Selector

json_content = json.loads(response.body)["content"]

content = Selector(text=json_content)

content_text = content.xpath("string(.)").get()

因為只有 Selector 才有xpath方法,所以需要把 html 類型的字符串做一次轉(zhuǎn)換才能用 string 方法

總結(jié)

以上是生活随笔為你收集整理的xpath提取html属性,xpath提取 html标签的文字内容的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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