百度百科數據爬取 python 詞條數據獲取

最近需要補充一些電力名詞的解釋,尤其是文字相關內容。百度百科上的詞條質量有差異,因此我們需要先手工選擇一些高質量詞條。

假設我們選擇了互感器頁面中的儀用變壓器詞條,首先:

import requests  
from bs4 import BeautifulSoup  # 目標網頁的URL  
url = r"https://baike.baidu.com/item/%E4%BB%AA%E7%94%A8%E5%8F%98%E5%8E%8B%E5%99%A8/5435598?fromtitle=%E4%BA%92%E6%84%9F%E5%99%A8&fromid=2547303"  # 發送HTTP請求并獲取響應  
response = requests.get(url)  

接下來,解析獲取到的response:

contents=[]
# 檢查響應狀態碼,確保請求成功  
if response.status_code == 200:  # 解析HTML內容  soup = BeautifulSoup(response.text, "html.parser")  # 找到class屬性為"lemmaSummary_M04mg", "J-summary"的div元素  div_with_class_summary = soup.find("div", class_=["lemmaSummary_M04mg", "J-summary"])      # 找到class屬性為"J-lemma-content"的div元素  div_with_class = soup.find("div", class_="J-lemma-content")  if div_with_class_summary:for child in div_with_class_summary.descendants: tmp=""# 檢查子元素是否是span標簽且class屬性為"text_wRvkv"  if child.name == "div"  and child.get("class")==["para_rOiQc", "summary_AVljn", "MARK_MODULE"]:# 打印span元素的文本內容  for new_child in child.descendants: if new_child.name == "span" and new_child.get("class") and "text_wRvkv" in  new_child.get("class"):tmp+=new_child.textcontents.append(tmp)contents.append("\n")    if div_with_class:  # 遍歷div中的所有子元素  for child in div_with_class.descendants: # 檢查子元素是否是span標簽且class屬性為"text_wRvkv"  if child.name == "div"  and child.get("class")==['para_rOiQc', 'content_ACwOP', 'MARK_MODULE']:tmp=""# 打印span元素的文本內容  for new_child in child.descendants: if new_child.name == "span" and new_child.get("class") and "text_wRvkv" in  new_child.get("class"):tmp+=new_child.textcontents.append(tmp)contents.append("\n")    #             檢查子元素是否是h2標簽  elif child.name == "h2":  # 打印h2標簽的內容  contents.append("####"+child.text)elif child.name == "h3":  # 打印h2標簽的內容  contents.append("##"+child.text)else:  print("Failed to retrieve the web page.")

最后打印結果,發現可以復制詞條中的主要內容,例如二級標題、三級標題和正文,以及每個百科最開始的概念介紹:

for content in contents:print(content)

解析效果如下:

儀用變壓器是指一種特殊用途的變壓器,它有兩個主要用途:一是用來擴大交流電工儀表的量程,二是用來隔離高電壓、大電流并使其變成低電壓、小電流后中,作為信號供繼電保護、自動裝置和控制回路使用。####簡述
直接測量大電流或者高電壓是比較困難的。在交流電路中,常用特殊的變壓器把大電流轉換成小電流、高電壓轉換成低電壓后再測量。所用的轉換裝置就稱為電流互感器和電壓互感器。使用互感器的優點在于使測量儀表與高電壓隔離,保證儀表和人身的安全;可擴大儀表的量限,便于儀表的標準化;還可以減少測量中的能耗。因此,在交流電壓、電流和功率的測量中,以及各種繼電保護和控制電路中,互感器的應用是相當廣泛的。儀用變壓器用于電力系統中,作為測量、控制、指示、繼電保護等電路的信號源。可以使儀表、繼電器等與高電壓、大電流的被測電路絕緣,可以使儀表繼電器等的規格比直接測量高電壓、大電流電路時所用的儀表、繼電器規格小得多且規格統一。儀用變壓器主要在測量高電壓、大電流時使用,又稱儀用互感器。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/711870.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/711870.shtml
英文地址,請注明出處:http://en.pswp.cn/news/711870.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

DataSpell 2023:專注于數據,加速您的數據科學之旅 mac/win版

JetBrains DataSpell 2023是一款專為數據科學家和數據分析師設計的集成開發環境(IDE)。這款IDE提供了強大的數據分析和可視化工具,旨在幫助用戶更快速、更高效地進行數據科學工作。 DataSpell 2023軟件獲取 DataSpell 2023在保持其一貫的數…

【多線程】常見鎖策略詳解(面試常考題型)

目錄 🌴 樂觀鎖 vs 悲觀鎖🎍重量級鎖 vs 輕量級鎖🍀自旋鎖(Spin Lock)🎋公平鎖 vs ?公平鎖🌳可重?鎖 vs 不可重?鎖🎄讀寫鎖?相關面試題 常?的鎖策略 注意: 接下來講解的鎖策略不…

udp丟包問題研究

//發現udp 有收不到數據包現象. 一: 觀察丟包 1. ifconfig enp8s0 2. netstat -s -u 二: 修改系統緩存參數. recv_buffer_size 修改系統buffer_size sysctl -w net.core.rmem_max26214400 sysctl -w net.core.rmem_default26214400 三: 應用程序考慮 av_dict_set(&m_o…

cpp基礎學習筆記03:類型轉換

static_cast 靜態轉換 用于類層次結構中基類和派生類之間指針或者引用的轉換。up-casting (把派生類的指針或引用轉換成基類的指針或者引用表示)是安全的;down-casting(把基類指針或引用轉換成子類的指針或者引用)是不安全的。用于基本數據類型之間的轉換&#xff…

【C# 】進度條控件 ProgressBar 使用

進度條控件ProgressBar控件,一般作為UI界面表示某個事情進行到某個程度的外觀的體現。 那么進度條控件ProgressBar控件,在form中是怎么使用的呢? 該控件必須要用的屬性如下: private System.Windows.Forms.ProgressBar progressB…

Flutter Version Manager (FVM): Flutter的版本管理終極指南

Flutter筆記 Flutter Version Manager (FVM) - 文章信息 - Author: 李俊才 (jcLee95) Visit me at: https://jclee95.blog.csdn.netEmail: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/qq_28550263/article/details/136300307 my-websit…

SQL-Labs靶場“26-28”關通關教程

君衍. 一、二十六關 基于GET過濾空格以及注釋報錯注入1、源碼分析2、繞過思路3、updatexml報錯注入 二、二十六a關 基于GET過濾空格注釋字符型注入1、源碼分析2、繞過思路3、時間盲注 三、二十七關 基于union及select的過濾單引號注入1、源碼分析2、繞過思路3、聯合查詢注入4、…

laravel cache

一、基本操作 Cache::put() 創建緩存(鍵,值,有效期(單位是秒)) Cache::get() 獲取緩存 Cache::add() 只會在緩存項不存在的情況下添加數據到緩存,如果數據被成功返回 true,否則&…

Android在后臺讀取UVC攝像頭的幀數據流并推送

Android在后臺讀取UVC攝像頭的幀數據流并推送 添加UvcCamera依賴庫 使用原版的 saki4510t/UVCCamera 在預覽過程中斷開可能會閃退,這里使用的是 jiangdongguo/AndroidUSBCamera 中修改的版本,下載到本地即可。 https://github.com/jiangdongguo/AndroidU…

Rust學習筆記:基礎工具和基本名詞

不要用共享內存來通信,要用通信來共享內存 rustup: 一個用于管理 Rust 版本和相關工具的命令行工具 rustup update cargo: Rust 的構建系統和包管理工具 構建代碼下載依賴庫并構建下載庫 crate: 代碼包/庫 trait: 特性、功能 ///: 生成 html 格式的 doc&#…

CELL文獻速遞 | 了解微生物如何在社會中傳播并塑造我們的健康

谷禾健康 當人還是嬰兒時,會從父母那里得到微生物;和寵物玩耍或接觸時,也會從寵物那得到微生物;有時候人沒有直接和動物玩耍,只是接觸動物的糞便,甚至其他環境的微生物,都會交換微生物... 這些其…

智慧治水丨計訊物聯水利RTU助推小型水庫出險加固工程建設與管理

日前,水利部印發《關于健全小型水庫除險加固和運行管護機制的意見》(以下簡稱《意見》),健全小型水庫除險加固和運行管護常態化機制,提高小型水庫安全管理水平。《意見》提出了“十四五”的兩大管理機制,通…

adb下載安裝及使用教程

adb下載安裝及使用教程 一、ADB的介紹1.ADB是什么?2.內容簡介3.ADB常用命令1. ADB查看設備2. ADB安裝軟件3. ADB卸載軟件4. ADB登錄設備shell5. ADB從電腦上發送文件到設備6. ADB從設備上下載文件到電腦7. ADB顯示幫助信息 4.為什么要用ADB 二、ADB的下載1.Windows版…

Flutter GetX 之 暗黑模式

我們緊接上篇文章,今天繼續講解一下強大的 GetX 的另一個功能,就是 暗黑模式 ,在iOS 13開始蘋果的應用慢慢的都開始適配 暗黑模式,andr。oid 也慢慢的 開始跟進,截止到目前,商店的大部分應用都已經完成了 暗黑模式 的適配。 原生開發為我們提供對應的 API,那么Flutter呢…

機器學習相關概念及術語總結

目錄 1.機器學習2.監督學習3.無監督學習4.線性回歸5.邏輯回歸 1.機器學習 機器學習的定義:一個計算機程序可從經驗E(Experience)中學習如何完成任務T(Task),并且隨著經驗E的增加,性能指標P&…

Python中reduce函數和lambda表達式的學習

reduce函數將一個數據集合(鏈表,元組等)中的所有數據進行下列操作:用傳給 reduce 中的函數 function(有兩個參數)先對集合中的第 1、2 個元素進行操作,得到的結果再與第三個數據用 function 函數…

【論文精讀】DINOv2

摘要 學習與特定任務無關的預訓練表示已經成為自然語言處理的標準,這些表示不進行微調,即可在下游任務上明顯優于特定任務模型的性能。其主要得益于使用無監督語言建模目標對大量原始文本進行預訓練。 遵循NLP中的這種范式轉變,以探索計算機視…

iSlide插件2024免費版(包含52 個PPT設計輔助功能,9 大在線資源庫,以及超 50 萬 專業)

一、功能介紹 iSlide是一款專為PowerPoint設計的插件,它集合了眾多設計與效率提升的功能,幫助用戶更快速、更美觀地制作演示文稿。 主題設計:提供多種設計主題,用戶只需一鍵應用,即可為幻燈片賦予統一的視覺風格。智…

每次提出一個bug都讓測試重現,描述得那么清楚,自己操作下不會嗎?

一說到測試和開發的關系,你一定會想到一個詞“冤家”。 開發的工作就是按照PM的設計將產品最終造出來,而測試則是在開發已完成的工作里糾錯。so,測試的工作會讓開發很不爽,人之常情,誰都不喜歡自己的勞動成果被別人挑…

react路由基礎

1.目錄 A. 能夠說出React路由的作用 B. 能夠掌握react-router-dom的基本使用 C. 能夠使用編程式導航跳轉路由 D. 能夠知道React路由的匹配模式 2.目錄 A. React路由介紹 B. 路由的基本使用 C. 路由的執行過程 D. 編程式導航 E. 默認路由 F. 匹配模式 3.react路由介紹 現代…