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

python數(shù)據(jù)解析BeautifulSoup爬取三國演義章節(jié)示例

 更新時間:2021年09月29日 15:04:40   作者:小緣喵~  
這篇文章主要介紹了python數(shù)據(jù)解析BeautifulSoup爬取三國演義章節(jié)示例,文中附含詳細示例代碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助

數(shù)據(jù)解析

數(shù)據(jù)解析就是將爬取到的整個頁面中的局部的內(nèi)容進行提取。python中常用的數(shù)據(jù)解析方式有以下三種:

  • bs4(python中獨有的)
  • xpath(推薦,通用型強)
  • 正則

數(shù)據(jù)解析原理概述:

首先我們知道需要解析(提?。┑膬?nèi)容都會在標簽之間或者標簽對應的屬性中進行存儲

所以我們需進行指定標簽的定位

然后將標簽或者標簽對應的屬性中存儲的數(shù)據(jù)值進行提取(解析)

Beautiful Soup

Beautiful Soup 是一個可以從HTML或XML文件中提取數(shù)據(jù)的Python庫。其只能運用在python語言中

bs4數(shù)據(jù)解析原理

實例化一個BeautifulSoup對象,并且將頁面源碼數(shù)據(jù)加載到該對象中。而將頁面源碼數(shù)據(jù)加載到該對象中有兩種方式,一種是將本地得html文檔加載,另一種是將互聯(lián)網(wǎng)上獲取的頁面源碼加載通過

調用BeautifulSoup對象中相關的屬性或者方法進行標簽定位和數(shù)據(jù)提取

要使用bs4首先需要先下載對應的包

pip install bs4

pip install -i https://mirrors.aliyun.com/pypi/simple/ lxml

Beautiful Soup用法

提取整個標簽數(shù)據(jù)

進行標簽定位常用的幾個方法如下

soup.標簽名 返回的是html中第一次出現(xiàn)的標簽

soup.find(標簽名) 返回第一次出現(xiàn)的這個標簽

soup.find_all(標簽名)) 返回符合要求的所有標簽

soup.select(標簽名) 返回符合要求的所有標簽

from bs4 import BeautifulSoup    #導包
html = """
<html lang="en">
    <head>
      <meta charset="utf-8">
      <meta name="theme-color" content="#ffffff">
      <base href="./" rel="external nofollow" ><link rel="stylesheet" href="styles.30d0912c1ece284d8d9a.css" rel="external nofollow" >
    </head>
    <body>
        <div>
            <p>百里守約</p>
        </div>
        <div class="song">
            <p>前程似錦</p>
        </div>
        <div class="song">
            <p>前程似錦2</p>
        </div>
        <div class="ming">  #后面改了名字
            <p>以夢為馬</p>
        </div>  
        <div class="tang">
            <ul>
                <li><a  title='qing'>清明時節(jié)</a></li>
                <li><a  title='qing'>秦時明月</a></li>
                <li><a  title='qing'>漢時關</a></li>
            </ul>
        </div>
      <flink-root></flink-root>
        <script type="text/javascript" src="runtime.0dcf16aad31edd73d8e8.js"></script><script type="text/javascript" src="es2015-polyfills.923637a8e6d276e6f6df.js" nomodule></script><script type="text/javascript" src="polyfills.bb2456cce5322b484b77.js"></script><script type="text/javascript" src="main.8128365baee3dc30e607.js"></script>
    </body>
</html>
"""
#實例化一個BeautifulSoup對象,并且將本地的源碼數(shù)據(jù)加載到該對象中。且使用html.parser進行數(shù)據(jù)解析
soup = BeautifulSoup(html,'html.parser')
print(soup.meta)      #輸出<meta charset="utf-8">
print(soup.p)         #輸出<p>百里守約</p>
 
#find
print(soup.find('div'))  #輸出<div><p>百里守約</p></div>
#這里有多個div標簽,根據(jù)屬性定位,因為class為關鍵字,所以這里加_
print(soup.find('div',class_="song"))   #<p>前程似錦</p>
 
#find_all
print(soup.find_all('p'))  #[<p>百里守約</p>, <p>前程似錦</p>, <p>前程似錦2</p>, <p>以夢為馬</p>]
print(soup.select('.tang'))  #將這個選擇器中的所有內(nèi)容提取
print(soup.select('.tang > ul > li > a')[1])  #返回ul中的li中的所有a標簽中的第二個a標簽 <a  rel="external nofollow"  title="qing">秦時明月</a>

提取標簽中的內(nèi)容和標簽的屬性值

#獲取標簽中的內(nèi)容
print(soup.p.text)      #輸出百里守約
print(soup.find('div',class_="ming").text)  #以夢為馬
print(soup.find('div',class_="song"))
print(soup.select('.tang   a')[0].text)   #清明時節(jié)
 
#獲取標簽中的屬性值,如a標簽中的href值
print(soup.select('.tang   a')[0]['href'])  #http://123.com

案例—爬取三國演義章節(jié)及對應的內(nèi)容

網(wǎng)站如下,網(wǎng)站數(shù)據(jù)的獲取不是通過ajax發(fā)送的請求

import requests
from bs4 import BeautifulSoup
url = 'https://so.gushiwen.org/guwen/book_46653FD803893E4F7F702BCF1F7CCE17.aspx'
headers={
    'User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Mobile Safari/537.36'
}
pag_content = requests.get(url,headers,timeout=4).text
#print(pag_content)
#提取每章節(jié)內(nèi)容的鏈接
soup = BeautifulSoup(pag_content,'html.parser')
a_text = soup.select('.bookcont a')     #將其下面的所有a標簽提取出來 
for i in a_text:
    #獲取a標簽中的href屬性的值
    detail_url = i['href']
    #請求詳細內(nèi)容的url的內(nèi)容
    detail_content = requests.get(detail_url,headers,timeout=4).text
    soup = BeautifulSoup(detail_content,'html.parser')
    #提取class標簽
    class_content = soup.find('div',class_='contson')
    #print(class_content)  #該標簽中有很多p標簽,返回整個class_content標簽
    #print(class_content.text)   #獲取其所有的內(nèi)容
    with open('三國演義.txt','a',encoding='utf-8') as f:
        f.write(i.text+'\r')
        f.write(class_content.text+'\r')
    print(f'爬取{i.text}ok')
print('全部ok')

 

以上就是python數(shù)據(jù)解析BeautifulSoup爬取三國演義章節(jié)示例的詳細內(nèi)容,更多關于BeautifulSoup爬取三國演義章節(jié)的資料請關注腳本之家其它相關文章!

相關文章

  • 深入理解Django的自定義過濾器

    深入理解Django的自定義過濾器

    這篇文章主要給大家介紹了關于Django自定義過濾器的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2017-10-10
  • 詳談Python 窗體(tkinter)表格數(shù)據(jù)(Treeview)

    詳談Python 窗體(tkinter)表格數(shù)據(jù)(Treeview)

    今天小編就為大家分享一篇詳談Python 窗體(tkinter)表格數(shù)據(jù)(Treeview),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Python+Sklearn實現(xiàn)異常檢測

    Python+Sklearn實現(xiàn)異常檢測

    這篇文章主要為大家詳細介紹了Python如何利用Sklearn實現(xiàn)異常檢測,文中的示例代碼講解詳細,對我們學習Python有一定的幫助,感興趣的可以跟隨小編一起學習一下
    2022-12-12
  • 使用Python實現(xiàn)有趣的鎖屏小工具

    使用Python實現(xiàn)有趣的鎖屏小工具

    這篇文章主要為大家詳細介紹了如何使用Python實現(xiàn)有趣的鎖屏小工具,這樣再也不用擔心因為沒有鎖屏被扣工資啦,打工人快跟隨小編一起學習一下吧
    2023-12-12
  • Python使用jsonpath_ng的方法

    Python使用jsonpath_ng的方法

    json path_ng 是 Python 中一款解析和操作 JSON 數(shù)據(jù)的工具,它可以通過 JSONPath 語法來對 JSON 數(shù)據(jù)進行定位和提取,其用法類似于 XPath 語法對 XML 數(shù)據(jù)進行定位,這篇文章主要介紹了Python使用jsonpath_ng的方法,需要的朋友可以參考下
    2023-12-12
  • python實現(xiàn)決策樹

    python實現(xiàn)決策樹

    這篇文章主要為大家詳細介紹了python實現(xiàn)決策樹的相關代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Python基本數(shù)據(jù)結構之字典類型dict用法分析

    Python基本數(shù)據(jù)結構之字典類型dict用法分析

    這篇文章主要介紹了Python基本數(shù)據(jù)結構之字典類型dict用法,結合實例形式分析了Python字典類型dict概念、原理、定義及基本使用技巧,需要的朋友可以參考下
    2019-06-06
  • Python處理Excel的14個常用操作總結

    Python處理Excel的14個常用操作總結

    在數(shù)據(jù)處理和分析的領域中,Excel是一種被廣泛使用的工具,然而,通過Python處理Excel,能夠更好地實現(xiàn)自動化和批量處理,本文為大家整理了14個Python處理Excel的常用操作,希望對大家有所幫助
    2023-12-12
  • python深度學習tensorflow安裝調試教程

    python深度學習tensorflow安裝調試教程

    這篇文章主要為大家介紹了python深度學習tensorflow安裝調試教程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • Python文件操作JSON CSV TSV Excel和Pickle文件序列化

    Python文件操作JSON CSV TSV Excel和Pickle文件序列化

    這篇文章主要為大家介紹了Python文件操作之JSON、CSV、TSV、Excel和Pickle文件序列化示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11

最新評論

丰镇市| 平舆县| 保德县| 凤凰县| 盐津县| 望城县| 万载县| 东乡| 横山县| 若尔盖县| 安庆市| 文安县| 靖宇县| 永泰县| 温州市| 全椒县| 长丰县| 遂宁市| 凌海市| 孝义市| 凉山| 抚远县| 本溪市| 武宁县| 泸溪县| 云霄县| 浏阳市| 阿坝| 怀集县| 乡宁县| 彭山县| 长丰县| 上思县| 遵化市| 武城县| 秦皇岛市| 萨嘎县| 辽阳县| 通山县| 阳城县| 舟山市|