最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python大數(shù)據(jù)之使用lxml庫(kù)解析html網(wǎng)頁(yè)文件示例

 更新時(shí)間:2019年11月16日 11:13:23   作者:xuehyunyu  
這篇文章主要介紹了Python大數(shù)據(jù)之使用lxml庫(kù)解析html網(wǎng)頁(yè)文件,結(jié)合實(shí)例形式分析了Python大數(shù)據(jù)操作中使用lxml庫(kù)解析html網(wǎng)頁(yè)具體步驟及相關(guān)注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了Python大數(shù)據(jù)之使用lxml庫(kù)解析html網(wǎng)頁(yè)文件。分享給大家供大家參考,具體如下:

lxml是Python的一個(gè)html/xml解析并建立dom的庫(kù),lxml的特點(diǎn)是功能強(qiáng)大,性能也不錯(cuò),xml包含了ElementTree ,html5lib ,beautfulsoup 等庫(kù)。

使用lxml前注意事項(xiàng):先確保html經(jīng)過(guò)了utf-8解碼,即code =html.decode('utf-8', 'ignore'),否則會(huì)出現(xiàn)解析出錯(cuò)情況。因?yàn)橹形谋痪幋a成utf-8之后變成 '/u2541' 之類(lèi)的形式,lxml一遇到 "/"就會(huì)認(rèn)為其標(biāo)簽結(jié)束。

具體用法:元素節(jié)點(diǎn)操作

1、  解析HTMl建立DOM

from lxml import etree
dom = etree.HTML(html)

2、  查看dom中子元素的個(gè)數(shù) len(dom)

3、  查看某節(jié)點(diǎn)的內(nèi)容:etree.tostring(dom[0])

4、  獲取節(jié)點(diǎn)的標(biāo)簽名稱(chēng):dom[0].tag

5、  獲取某節(jié)點(diǎn)的父節(jié)點(diǎn):dom[0].getparent()

6、  獲取某節(jié)點(diǎn)的屬性節(jié)點(diǎn)的內(nèi)容:dom[0].get("屬性名稱(chēng)")

對(duì)xpath路徑的支持:

XPath即為XML路徑語(yǔ)言,是用一種類(lèi)似目錄樹(shù)的方法來(lái)描述在XML文檔中的路徑。比如用"/"來(lái)作為上下層級(jí)間的分隔。第一個(gè)"/"表示文檔的根節(jié)點(diǎn)(注意,不是指文檔最外層的tag節(jié)點(diǎn),而是指文檔本身)。比如對(duì)于一個(gè)HTML文件來(lái)說(shuō),最外層的節(jié)點(diǎn)應(yīng)該是"/html"。

xpath選取元素的方式:

1、  絕對(duì)路徑,如page.xpath("/html/body/p"),它會(huì)找到body這個(gè)節(jié)點(diǎn)下所有的p標(biāo)簽

2、  相對(duì)路徑,page.xpath("http://p"),它會(huì)找到整個(gè)html代碼里的所有p標(biāo)簽。

xpath篩選方式:

1、  選取元素時(shí)一個(gè)列表,可通過(guò)索引查找[n]

2、  通過(guò)屬性值篩選元素p =page.xpath("http://p[@style='font-size:200%']")

3、  如果沒(méi)有屬性可以通過(guò)text()(獲取元素中文本)、position()(獲取元素位置)、last()等進(jìn)行篩選

獲取屬性值

dom.xpath(.//a/@href)

獲取文本

dom.xpath(".//a/text()")

示例代碼:

#!/usr/bin/python
# -*- coding:utf-8 -*-
from scrapy.spiders import Spider
from lxml import etree
from jredu.items import JreduItem
class JreduSpider(Spider):
  name = 'tt' #爬蟲(chóng)的名字,必須的,唯一的
  allowed_domains = ['sohu.com']
  start_urls = [
    'http://www.sohu.com'
  ]
  def parse(self, response):
    content = response.body.decode('utf-8')
    dom = etree.HTML(content)
    for ul in dom.xpath("http://div[@class='focus-news-box']/div[@class='list16']/ul"):
      lis = ul.xpath("./li")
      for li in lis:
        item = JreduItem() #定義對(duì)象
        if ul.index(li) == 0:
          strong = li.xpath("./a/strong/text()")
          li.xpath("./a/@href")
          item['title']= strong[0]
          item['href'] = li.xpath("./a/@href")[0]
        else:
          la = li.xpath("./a[last()]/text()")
          item['title'] = la[0]
          item['href'] = li.xpath("./a[last()]/href")[0]
        yield item

更多關(guān)于Python相關(guān)內(nèi)容可查看本站專(zhuān)題:《Python Socket編程技巧總結(jié)》、《Python正則表達(dá)式用法總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門(mén)與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Django自定義插件實(shí)現(xiàn)網(wǎng)站登錄驗(yàn)證碼功能

    Django自定義插件實(shí)現(xiàn)網(wǎng)站登錄驗(yàn)證碼功能

    這篇文章主要為大家詳細(xì)介紹了Django自定義插件實(shí)現(xiàn)網(wǎng)站登錄驗(yàn)證碼功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • 詳解如何使用python打印出多樣字符

    詳解如何使用python打印出多樣字符

    當(dāng)你第一次進(jìn)入Python的世界里,學(xué)到的第一句代碼是不是print("Hello?World"),今天,讓我們一起來(lái)開(kāi)啟探索print()的奇妙之旅,從最基礎(chǔ)的打印字符用法到讓它跳舞唱歌——?jiǎng)討B(tài)顯示,讓我們一步步解鎖print()的各種技能吧,需要的朋友可以參考下
    2024-03-03
  • 解決pip安裝tensorflow中出現(xiàn)的no module named tensorflow.python 問(wèn)題方法

    解決pip安裝tensorflow中出現(xiàn)的no module named tensorflow.python 問(wèn)題方法

    這篇文章主要介紹了解決pip安裝tensorflow中出現(xiàn)的no module named tensorflow.python 問(wèn)題方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • 詳解Python3定時(shí)器任務(wù)代碼

    詳解Python3定時(shí)器任務(wù)代碼

    這篇文章主要介紹了Python3定時(shí)器任務(wù)代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-09-09
  • 詳解python while 函數(shù)及while和for的區(qū)別

    詳解python while 函數(shù)及while和for的區(qū)別

    這篇文章主要介紹了python while 函數(shù)及while和for的區(qū)別 ,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-09-09
  • 如何利用Python連接MySQL數(shù)據(jù)庫(kù)實(shí)現(xiàn)數(shù)據(jù)儲(chǔ)存

    如何利用Python連接MySQL數(shù)據(jù)庫(kù)實(shí)現(xiàn)數(shù)據(jù)儲(chǔ)存

    當(dāng)我們學(xué)習(xí)了mysql數(shù)據(jù)庫(kù)后,我們會(huì)想著該如何將python和mysql結(jié)合起來(lái)運(yùn)用,下面這篇文章主要給大家介紹了關(guān)于如何利用Python連接MySQL數(shù)據(jù)庫(kù)實(shí)現(xiàn)數(shù)據(jù)儲(chǔ)存的相關(guān)資料,需要的朋友可以參考下
    2021-11-11
  • Python光學(xué)仿真學(xué)習(xí)Gauss高斯光束在空間中的分布

    Python光學(xué)仿真學(xué)習(xí)Gauss高斯光束在空間中的分布

    這篇文章主要介紹了Python光學(xué)仿真學(xué)習(xí)中Gauss高斯光束在空間中的分布理解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2021-10-10
  • 詳解python pandas 分組統(tǒng)計(jì)的方法

    詳解python pandas 分組統(tǒng)計(jì)的方法

    這篇文章主要介紹了詳解pandas python 分組統(tǒng)計(jì)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • python機(jī)器學(xué)習(xí)之神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)

    python機(jī)器學(xué)習(xí)之神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了python機(jī)器學(xué)習(xí)之神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn)方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • YOLOv5改進(jìn)教程之添加注意力機(jī)制

    YOLOv5改進(jìn)教程之添加注意力機(jī)制

    注意力機(jī)制最先被用在NLP領(lǐng)域,Attention就是為了讓模型認(rèn)識(shí)到數(shù)據(jù)中哪一部分是最重要的,為它分配更大的權(quán)重,獲得更多的注意力在一些特征上,讓模型表現(xiàn)更好,這篇文章主要給大家介紹了關(guān)于YOLOv5改進(jìn)教程之添加注意力機(jī)制的相關(guān)資料,需要的朋友可以參考下
    2022-06-06

最新評(píng)論

木里| 枣阳市| 南雄市| 施秉县| 资溪县| 奈曼旗| 瓦房店市| 莲花县| 和龙市| 长汀县| 会昌县| 南溪县| 大连市| 遂昌县| 察隅县| 吉木萨尔县| 姜堰市| 兴业县| 阳山县| 南岸区| 万源市| 桐庐县| 泾源县| 即墨市| 垦利县| 高台县| 河南省| 广安市| 甘洛县| 松潘县| 莱阳市| 张家界市| 丰城市| 滨海县| 玉溪市| 碌曲县| 曲麻莱县| 北辰区| 武胜县| 南岸区| 华坪县|