国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

python-xpath獲取html文檔的部分內容

瀏覽:3日期:2022-08-03 15:56:25

有些時候我在們需要的用正則提取出html中某一個部分的文字內容,如圖:

python-xpath獲取html文檔的部分內容

獲取dd部分的html文檔,我們要通過它的一個屬性去確定他的位置才可以拿到他這個部分我們可以看到他的這個屬性class=’row clearfix ’,然后用xpath去獲取到這部分:

name = tree.xpath('//dd[@class=’row clearfix ’]')from lxml import htmlimport requestsurl = ’http://navi.cnki.net/knavi/JournalDetail/GetArticleList?year=2018&issue=04&pykm=DZXU&pageIdx=0&pcode=CJFD’res = requests.get(url)tree = html.fromstring(res.text)name = tree.xpath('//dd[@class=’row clearfix ’]')print(name)

如果直接打印他是不能夠出來的,

python-xpath獲取html文檔的部分內容

我們需要對Element進行處理,用到name1 = html.tostring(name[0]),代碼如下:

from lxml import htmlimport requestsurl = ’http://navi.cnki.net/knavi/JournalDetail/GetArticleList?year=2018&issue=04&pykm=DZXU&pageIdx=0&pcode=CJFD’res = requests.get(url)tree = html.fromstring(res.text)name = tree.xpath('//dd[@class=’row clearfix ’]')name1 = html.tostring(name[0])print(name1)

打印截圖:

python-xpath獲取html文檔的部分內容

但是大家可以看到里面的等內容并不是中文,原因是我們使用tostring方法輸出的是修正后的HTML代碼,但是結果是bytes類型,在python中bytes類型是不可以進行編碼的,需要轉換成字符串,使用代碼name1.decode(),此時我們將bytes類型轉換為str(字符串)類型。

那么此時我們關鍵是如何將$#26080;此類的符號轉換成漢字?。?!那么首先要搞清楚這是什么編碼?這類符號是HTML、XML 等 SGML 類語言的轉義序列。它們不是”編碼“,也就是說我們不能使用utf-8、gbk等編碼進行處理,需要使用HTMLParse進行處理,完整代碼如下:

from lxml import htmlimport requestsfrom html.parser import HTMLParser #導入html解析庫url = ’http://navi.cnki.net/knavi/JournalDetail/GetArticleList?year=2018&issue=04&pykm=DZXU&pageIdx=0&pcode=CJFD’res = requests.get(url)tree = html.fromstring(res.text)name = tree.xpath('//dd[@class=’row clearfix ’]')name1 = html.tostring(name[0])name2 = HTMLParser().unescape(name1.decode())print(name2)

此時運行結果如下:

python-xpath獲取html文檔的部分內容

那么此時就已經大功告成了?。。?/p>

以上這篇python-xpath獲取html文檔的部分內容就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 祥云县| 屏东县| 南涧| 柯坪县| 昭平县| 开鲁县| 惠东县| 德钦县| 定日县| 门源| 陇南市| 贡觉县| 张家界市| 荆门市| 五常市| 莎车县| 莲花县| 谢通门县| 萨迦县| 满城县| 大竹县| 灵石县| 西平县| 哈密市| 元氏县| 浦县| 萨迦县| 资中县| 河西区| 海安县| 郧西县| 上蔡县| 逊克县| 普兰县| 廉江市| 海伦市| 海淀区| 云林县| 三江| 抚州市| 甘孜|