Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 国产成人精品曰本亚洲,欧美日韩网站,91免费视频网

          整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          如何使用htmlq提取html文件內(nèi)容

          tmlq能夠?qū)?HTML 數(shù)據(jù)進(jìn)行 sed 或 grep 操作。我們可以使用 htmlq 搜索、切片和過(guò)濾 HTML 數(shù)據(jù)。讓我們看看如何在 Linux 或 Unix 上安裝和使用這個(gè)方便的工具并處理 HTML 數(shù)據(jù)。

          什么是htmlq?

          htmlq類似于 jq,但用于 HTML。使用 CSS 選擇器從 HTML 文件中提取部分內(nèi)容。在 CSS 中,選擇器用于定位我們想要設(shè)置樣式的網(wǎng)頁(yè)上的 HTML 元素。例如,我們可以使用此工具輕松提取圖像或其他 URL。

          安裝htmlq

          首先需要在系統(tǒng)中安裝cargo然后使用cargo來(lái)安裝htmlq:

          [root@localhost ~]# yum -y install cargo
          [root@localhost ~]# cargo install htmlq
          

          設(shè)置可執(zhí)行的路徑

          確保將 $HOME/.cargo/bin 添加到 PATH 變量中,以便能夠使用 export 命令運(yùn)行已安裝的二進(jìn)制文件:

          [root@localhost ~]# echo 'export PATH="$PATH:$HOME/.cargo/bin"' >> ~/.bash_profile 
          [root@localhost ~]# . ~/.bash_profile 
          

          如何使用 htmlq 從 HTML 文件中提取內(nèi)容?

          下面是使用curl和htmlq的用法:

          curl -s url | htmlq '#css-selector'
          curl -s url2 | htmlq '.css-selector'
          curl -s https://www.linuxprobe.com | htmlq --pretty '#content' | more
          

          讓我們找到頁(yè)面中的所有鏈接。例如:

          [root@localhost ~]# curl -s https://www.linuxprobe.com | htmlq --attribute href a
          


          人性化顯示HTML:

          [root@localhost ~]# curl --silent https://mgdm.net | htmlq --pretty '#posts'
          

          幫助手冊(cè)

          使用下面命令查看幫助頁(yè)面:

          [root@localhost ~]# htmlq --help
          htmlq 0.3.0
          Michael Maclean <michael@mgdm.net>
          Runs CSS selectors on HTML
          
          USAGE:
              htmlq [FLAGS] [OPTIONS] [selector]...
          
          FLAGS:
              -B, --detect-base          Try to detect the base URL from the <base> tag in the document. If not found, default to
                                         the value of --base, if supplied
              -h, --help                 Prints help information
              -w, --ignore-whitespace    When printing text nodes, ignore those that consist entirely of whitespace
              -p, --pretty               Pretty-print the serialised output
              -t, --text                 Output only the contents of text nodes inside selected elements
              -V, --version              Prints version information
          
          OPTIONS:
              -a, --attribute <attribute>    Only return this attribute (if present) from selected elements
              -b, --base <base>              Use this URL as the base for links
              -f, --filename <FILE>          The input file. Defaults to stdin
              -o, --output <FILE>            The output file. Defaults to stdout
          
          ARGS:
              <selector>...    The CSS expression to select [default: html]
          

          總結(jié)

          htmlq能夠?qū)?HTML 數(shù)據(jù)進(jìn)行 sed 或 grep 操作。我們可以使用 htmlq 搜索、切片和過(guò)濾 HTML 數(shù)據(jù)。

          蟲是Python的一個(gè)重要的應(yīng)用,使用Python爬蟲我們可以輕松的從互聯(lián)網(wǎng)中抓取我們想要的數(shù)據(jù),本文將基于爬取B站視頻熱搜榜單數(shù)據(jù)并存儲(chǔ)為例,詳細(xì)介紹Python爬蟲的基本流程。如果你還在入門爬蟲階段或者不清楚爬蟲的具體工作流程,那么應(yīng)該仔細(xì)閱讀本文!

          第一步:嘗試請(qǐng)求

          首先進(jìn)入b站首頁(yè),點(diǎn)擊排行榜并復(fù)制鏈接

          https://www.bilibili.com/ranking?spm_id_from=333.851.b_7072696d61727950616765546162.3

          現(xiàn)在啟動(dòng)Jupyter notebook,并運(yùn)行以下代碼

          import requests

          url = 'https://www.bilibili.com/ranking?spm_id_from=333.851.b_7072696d61727950616765546162.3'
          res = requests.get('url')
          print(res.status_code)
          #200

          在上面的代碼中,我們完成了下面三件事

          • 導(dǎo)入requests

          • 使用get方法構(gòu)造請(qǐng)求

          • 使用status_code獲取網(wǎng)頁(yè)狀態(tài)碼

          可以看到返回值是200,表示服務(wù)器正常響應(yīng),這意味著我們可以繼續(xù)進(jìn)行。

          第二步:解析頁(yè)面

          在上一步我們通過(guò)requests向網(wǎng)站請(qǐng)求數(shù)據(jù)后,成功得到一個(gè)包含服務(wù)器資源的Response對(duì)象,現(xiàn)在我們可以使用.text來(lái)查看其內(nèi)容

          可以看到返回一個(gè)字符串,里面有我們需要的熱榜視頻數(shù)據(jù),但是直接從字符串中提取內(nèi)容是比較復(fù)雜且低效的,因此我們需要對(duì)其進(jìn)行解析,將字符串轉(zhuǎn)換為網(wǎng)頁(yè)結(jié)構(gòu)化數(shù)據(jù),這樣可以很方便地查找HTML標(biāo)簽以及其中的屬性和內(nèi)容。

          在Python中解析網(wǎng)頁(yè)的方法有很多,可以使用正則表達(dá)式,也可以使用BeautifulSouppyquerylxml,本文將基于BeautifulSoup進(jìn)行講解.

          Beautiful Soup是一個(gè)可以從HTML或XML文件中提取數(shù)據(jù)的第三方庫(kù).安裝也很簡(jiǎn)單,使用pip install bs4安裝即可,下面讓我們用一個(gè)簡(jiǎn)單的例子說(shuō)明它是怎樣工作的

          from bs4 import BeautifulSoup

          page = requests.get(url)
          soup = BeautifulSoup(page.content, 'html.parser')
          title = soup.title.text
          print(title)
          # 熱門視頻排行榜 - 嗶哩嗶哩 (゜-゜)つロ 干杯~-bilibili

          在上面的代碼中,我們通過(guò)bs4中的BeautifulSoup類將上一步得到的html格式字符串轉(zhuǎn)換為一個(gè)BeautifulSoup對(duì)象,注意在使用時(shí)需要制定一個(gè)解析器,這里使用的是html.parser

          接著就可以獲取其中的某個(gè)結(jié)構(gòu)化元素及其屬性,比如使用soup.title.text獲取頁(yè)面標(biāo)題,同樣可以使用soup.bodysoup.p等獲取任意需要的元素。

          第三步:提取內(nèi)容

          在上面兩步中,我們分別使用requests向網(wǎng)頁(yè)請(qǐng)求數(shù)據(jù)并使用bs4解析頁(yè)面,現(xiàn)在來(lái)到最關(guān)鍵的步驟:如何從解析完的頁(yè)面中提取需要的內(nèi)容

          Beautiful Soup中,我們可以使用find/find_all來(lái)定位元素,但我更習(xí)慣使用CSS選擇器.select,因?yàn)榭梢韵袷褂肅SS選擇元素一樣向下訪問(wèn)DOM樹。

          現(xiàn)在我們用代碼講解如何從解析完的頁(yè)面中提取B站熱榜的數(shù)據(jù),首先我們需要找到存儲(chǔ)數(shù)據(jù)的標(biāo)簽,在榜單頁(yè)面按下F12并按照下圖指示找到

          可以看到每一個(gè)視頻信息都被包在class="rank-item"li標(biāo)簽下,那么代碼就可以這樣寫


          主站蜘蛛池模板: 国产在线观看一区精品| 亚洲AV美女一区二区三区| 国产另类TS人妖一区二区| 精品无码国产一区二区三区51安 | 亚洲中文字幕久久久一区| 国模精品一区二区三区| 乱色熟女综合一区二区三区| 精品国产一区二区三区香蕉事 | 日本在线一区二区| 中文字幕一区二区区免| 一区二区三区福利视频| 日韩一区二区三区免费播放| 在线免费视频一区| 狠狠做深爱婷婷久久综合一区| 国产吧一区在线视频| 国产短视频精品一区二区三区| 久久久91精品国产一区二区| 久久精品一区二区免费看| 无码人妻精品一区二区三区久久 | 91精品福利一区二区三区野战| 久久国产精品一区| 伊人精品视频一区二区三区| 在线视频一区二区三区三区不卡| 一区二区高清在线| 99久久精品国产高清一区二区| 国产一区三区二区中文在线 | 亚洲中文字幕乱码一区| 中文字幕av人妻少妇一区二区| 亚洲AV成人一区二区三区观看| 欧美亚洲精品一区二区| 视频一区在线播放| 国产一区二区精品久久凹凸| 日本在线一区二区| 波多野结衣一区二区三区 | 国产一区二区三区不卡AV| 午夜福利一区二区三区高清视频| 人妻夜夜爽天天爽爽一区| 精品福利视频一区二区三区| 国内精品一区二区三区最新| 亚洲日本中文字幕一区二区三区 | 日韩精品一区二区三区老鸦窝|