[爬蟲]python下的xpath清洗數據之html數據清洗

      網友投稿 1201 2025-03-31

      目錄

      源起

      分析

      解決

      總結

      源起

      現在我們面對一些爬蟲數據,特別是對于web網頁的爬取的時候,網頁總有一些不規整的數據來導致拿數據的麻煩,比如如下這種

      111

      222

      333

      444

      555

      1

      [爬蟲]python下的xpath清洗數據之html數據清洗

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      111

      222

      333

      444

      555

      我只想拿到111,222,333,444,555這些有效的信息,因為有些p標簽里面會引入script元素,導致我們還要在后期清洗,比較麻煩

      分析

      首先拿到問題我們就可以本能的想至少兩種方式,如果當成是文本處理,使用排除掉script這些文本,另外我們可以直接移除掉這些script元素,這里我不推薦使用正則,畢竟我們拿到一個特定的環境,比如lxml 庫就可以很輕松的處理這些文檔,使用正則后期維護困難,另外,你過兩個星期之后你也不會知道你當時寫的正則是什么意思

      解決

      還是直接上代碼吧


      # -*- coding: utf-8 -*- from lxml import html from lxml.html.clean import Cleaner html_str = """

      111111

      222222

      333333

      44444

      665666

      """ def clean_script(): cleaner = Cleaner() cleaner.javaScript = True # This is True because we want to activate the javaScript filter cleaner.style = True # clean the style element tree = html.fromstring(html_str) print html.tostring(cleaner.clean_html(tree)) def remove_node(): tree = html.fromstring(html_str) ele = tree.xpath('//script') for e in ele: e.getparent().remove(e) print html.tostring(tree) if __name__ == '__main__': remove_node()

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      33

      34

      35

      36

      37

      38

      39

      40

      41

      42

      43

      44

      45

      46

      47

      48

      49

      50

      51

      52

      53


      # -*- coding: utf-8 -*-

      from lxml import html

      from lxml.html.clean import Cleaner

      html_str = """

      111111

      222222

      333333

      44444

      665666

      """

      def clean_script():

      cleaner = Cleaner()

      cleaner.javascript = True??# This is True because we want to activate the javascript filter

      cleaner.style = True # clean the style element

      tree = html.fromstring(html_str)

      print html.tostring(cleaner.clean_html(tree))

      def remove_node():

      tree = html.fromstring(html_str)

      ele = tree.xpath('//script')

      for e in ele:

      e.getparent().remove(e)

      print html.tostring(tree)

      if __name__ == '__main__':

      remove_node()

      輸出結果

      111111

      222222

      333333

      44444

      665666

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      111111

      222222

      333333

      44444

      665666

      總結

      本次主要介紹了常見的html 數據清洗方法,介紹了lxml 一些常用操作和方法,希望對于大家清洗數據的時候有幫助

      HTML Python

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:OKR績效考核是什么意思?
      下一篇:Google Colab 開發記錄(3)YOLOv5 環境搭建、訓練、推理
      相關文章
      亚洲精品无码少妇30P| 一本色道久久88—综合亚洲精品| 亚洲欧洲专线一区| 亚洲午夜精品在线| 亚洲伊人久久大香线焦| 亚洲第一页在线播放| 亚洲成在人线中文字幕| 亚洲国产片在线观看| 亚洲国产片在线观看| 久久精品亚洲AV久久久无码| 久久精品国产亚洲AV蜜臀色欲| 亚洲免费一级视频| 亚洲一卡2卡4卡5卡6卡残暴在线| 亚洲日本国产精华液| 亚洲免费黄色网址| 亚洲 暴爽 AV人人爽日日碰| 中文字幕亚洲综合小综合在线| 亚洲精品第一综合99久久| 亚洲精品无码久久久久久| 亚洲爆乳无码专区www| 亚洲AV无码国产剧情| 五月婷婷亚洲综合| 亚洲最大av无码网址| 亚洲成A人片777777| 亚洲午夜精品一区二区| 亚洲国产成人va在线观看网址| 亚洲av片不卡无码久久| 亚洲精品国产精品| 一级毛片直播亚洲| 丝袜熟女国偷自产中文字幕亚洲| 亚洲欧洲精品无码AV| 亚洲精品免费观看| 亚洲人成在线中文字幕| 亚洲欧美熟妇综合久久久久| 国产精品久久久久久亚洲小说 | 亚洲av一本岛在线播放| 亚洲精品无码少妇30P| 亚洲福利在线播放| 亚洲欧洲国产精品香蕉网| 91亚洲国产成人精品下载| 亚洲av极品无码专区在线观看|