欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python-xpath獲取html文檔的部分內(nèi)容

 更新時間:2020年03月06日 09:49:21   作者:帶魚工作室  
這篇文章主要介紹了python-xpath獲取html文檔的部分內(nèi)容,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

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

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

name = tree.xpath("http://dd[@class='row clearfix ']")
from lxml import html
import requests
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("http://dd[@class='row clearfix ']")
print(name)

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

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

from lxml import html
import requests
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("http://dd[@class='row clearfix ']")
name1 = html.tostring(name[0])
print(name1)

打印截圖:

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

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

from lxml import html
import requests
from 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("http://dd[@class='row clearfix ']")
name1 = html.tostring(name[0])
name2 = HTMLParser().unescape(name1.decode())
print(name2)

此時運行結(jié)果如下:

那么此時就已經(jīng)大功告成了?。。?/p>

以上這篇python-xpath獲取html文檔的部分內(nèi)容就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python 用opencv調(diào)用訓練好的模型進行識別的方法

    python 用opencv調(diào)用訓練好的模型進行識別的方法

    今天小編就為大家分享一篇python 用opencv調(diào)用訓練好的模型進行識別的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python中if語句的基本格式實例代碼

    Python中if語句的基本格式實例代碼

    在Python中,if語句用于根據(jù)條件執(zhí)行不同的代碼塊。本文詳細介紹了Python中if語句的基本格式使用方法及實例代碼,有需要的同學可以參考閱讀
    2023-05-05
  • Python使用socket模塊實現(xiàn)簡單tcp通信

    Python使用socket模塊實現(xiàn)簡單tcp通信

    這篇文章主要介紹了Python使用socket模塊實現(xiàn)簡單tcp通信,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08
  • python實現(xiàn)通過flask和前端進行數(shù)據(jù)收發(fā)

    python實現(xiàn)通過flask和前端進行數(shù)據(jù)收發(fā)

    今天小編就為大家分享一篇python實現(xiàn)通過flask和前端進行數(shù)據(jù)收發(fā),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Python的Flask框架的簡介和安裝方法

    Python的Flask框架的簡介和安裝方法

    這篇文章主要介紹了Python的Flask框架的簡介和安裝方法,Flask是一款高人氣的非常簡潔的web開發(fā)框架,需要的朋友可以參考下
    2015-11-11
  • Python操作MySQL簡單實現(xiàn)方法

    Python操作MySQL簡單實現(xiàn)方法

    這篇文章主要介紹了Python操作MySQL簡單實現(xiàn)方法,通過一個簡單的實例講述了Python針對mysql數(shù)據(jù)庫的增刪改查技巧,需要的朋友可以參考下
    2015-01-01
  • Python使用functools模塊中的partial函數(shù)生成偏函數(shù)

    Python使用functools模塊中的partial函數(shù)生成偏函數(shù)

    所謂偏函數(shù)即是規(guī)定了固定參數(shù)的函數(shù),在函數(shù)式編程中我們經(jīng)常可以用到,這里我們就來看一下Python使用functools模塊中的partial函數(shù)生成偏函數(shù)的方法
    2016-07-07
  • 一文掌握python中的__init__的意思及使用場景分析

    一文掌握python中的__init__的意思及使用場景分析

    __init__是構(gòu)造方法,誰調(diào)用,表示誰(更直觀的理解就是類的方法中,誰調(diào)用,表示誰,見下面第一個代碼)?。〔⒉皇潜剡x項,也就是說在類中,這個不是必須用的,那什么場景需要用到,什么場景不需要用到呢,感興趣的朋友跟隨小編一起看看吧
    2023-02-02
  • 最新評論