【爬蟲】單個網站鏈接爬取文獻數據:標題、摘要、作者等信息

源碼鏈接: https://github.com/Niceeggplant/Single—Site-Crawler.git

一、項目概述

從指定網頁中提取文章關鍵信息的工具。通過輸入文章的 URL,程序將自動抓取網頁內容

二、技術選型與原理

  1. requests:這是 Python 中用于發送 HTTP 請求的常用庫。它能夠模擬瀏覽器向網頁服務器發送請求,并獲取網頁的 HTML 文本內容。在本項目中,我們利用它來獲取目標文章網頁的源代碼,為后續的信息提取提供基礎數據。其使用方法非常簡單,只需調用 requests.get() 方法,并傳入目標 URL 和可選的請求頭信息即可。例如:
import requestsurl = "https://example.com/article"
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
}
response = requests.get(url, headers=headers)
html_text = response.text

這里設置請求頭中的 User-Agent 是為了模擬瀏覽器訪問,避免一些網站對非瀏覽器請求的限制。

  1. BeautifulSoup:該庫主要用于解析 HTML 和 XML 文檔。它能夠將復雜的網頁結構轉換為易于操作的 Python 對象,方便我們通過標簽、類名、ID 等屬性定位和提取網頁中的元素。在本項目中,我們使用它來解析 requests 庫獲取到的 HTML 文本,以提取文章的各種信息。使用時,首先需要創建一個 BeautifulSoup 對象,例如:
from bs4 import BeautifulSoupsoup = BeautifulSoup(html_text, 'html.parser')

這里的 html.parser 是 Python 內置的 HTML 解析器,也可以根據需要選擇其他更強大的解析器,如 lxml 解析器。

三、代碼實現步驟

  1. 定義提取函數
import requests
from bs4 import BeautifulSoupdef fetch_article_info(url):headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"}try:response = requests.get(url, headers=headers)response.raise_for_status()  soup = BeautifulSoup(response.text, 'html.parser')

這里定義了 fetch_article_info 函數,它接受一個文章 URL 作為參數,并在函數內部進行請求和解析的操作。

  1. 提取標題
        title_element = soup.find('h1')title = title_element.get_text().strip() if title_element else '未找到'

通過 soup.find('h1') 查找網頁中的 <h1> 標簽,通常文章標題會在這個標簽內。如果找到,則獲取其文本內容并去除首尾空格;如果未找到,則將標題設為 未找到

  1. 提取作者
        authors = []author_elements = soup.find_all('div', class_='authors')if not author_elements:author_elements = soup.find_all('input', id='authors')for author_element in author_elements:author_links = author_element.find_all('a')for link in author_links:authors.append(link.get_text().strip())authors = ', '.join(authors) if authors else '未找到'

首先嘗試通過查找類名為 authors<div> 標簽來獲取作者信息,如果未找到,則查找 idauthors<input> 標簽。然后遍歷找到
在這里插入圖片描述

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

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

相關文章

關于掃描模型 拓撲 和 傳遞貼圖工作流筆記

關于MAYA拓撲和傳遞貼圖的操作筆記 一、拓撲低模: 1、拓撲工作區位置: 1、準備出 目標 高模。 (高模的狀態如上 ↑ )。 2、打開頂點吸附,和建模工具區,選擇四邊形繪制. 2、拓撲快捷鍵使…

解決無法遠程管理Windows Server服務器核心安裝

問題 有時&#xff0c;人們會為了節省運算資源&#xff0c;例如運行Hyper-V虛擬機&#xff0c;而選擇Windows Server核心安裝&#xff0c;即無圖形化界面。這時&#xff0c;我們就只能通過Powershell命令對其進行操控&#xff0c;或為了獲得圖形化界面而使用遠程服務器管理工具…

SQL HAVING 子句深入解析

SQL HAVING 子句深入解析 介紹 SQL&#xff08;Structured Query Language&#xff09;是一種用于管理關系數據庫管理系統的標準編程語言。在SQL中&#xff0c;HAVING子句是與GROUP BY子句一起使用的&#xff0c;用于篩選分組后的數據。它根據聚合函數的結果對組進行條件過濾…

【計算機網絡】lab7 TCP協議

&#x1f308; 個人主頁&#xff1a;十二月的貓-CSDN博客 &#x1f525; 系列專欄&#xff1a; &#x1f3c0;計算機網絡_十二月的貓的博客-CSDN博客 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻擋不了春天的腳步&#xff0c;十二點的黑夜遮蔽不住黎明的曙光 目錄 1. 實驗目的…

JavaRestClient 客戶端初始化+索引庫操作

1. 介紹 ES官方提供了各種不同語言的客戶端&#xff0c;用來操作ES。這些客戶端的本質就是組裝DSL語句&#xff0c;通過http請求發送給ES。 Elasticsearch目前最新版本是8.0&#xff0c;其java客戶端有很大變化。不過大多數企業使用的還是8以下版本 2. 客戶端初始化 在elastic…

【JVM-2.2】使用JConsole監控和管理Java應用程序:從入門到精通

在Java應用程序的開發和運維過程中&#xff0c;監控和管理應用程序的性能和資源使用情況是非常重要的。JConsole是Java Development Kit&#xff08;JDK&#xff09;自帶的一款圖形化監控工具&#xff0c;它可以幫助開發者實時監控Java應用程序的內存、線程、類加載以及垃圾回收…

基于html5實現音樂錄音播放動畫源碼

源碼介紹 基于html5實現音樂錄音播放動畫源碼是一款類似Shazam的UI&#xff0c;點擊按鈕后&#xff0c;會變成為一個監聽按鈕。旁邊會有音符飛入這個監聽按鈕&#xff0c;最后轉換成一個音樂播放器。 效果預覽 源碼獲取 基于html5實現音樂錄音播放動畫源碼

《自動駕駛與機器人中的SLAM技術》ch1:自動駕駛

目錄 1.1 自動駕駛技術 1.2 自動駕駛中的定位與地圖 1.1 自動駕駛技術 1.2 自動駕駛中的定位與地圖 L2 在技術實現上會更傾向于實時感知&#xff0c;乃至可以使用感知結果直接構建鳥瞰圖&#xff08;bird eye view, BEV&#xff09;&#xff0c;而 L4 則依賴離線地圖。 高精地…

抖音矩陣是什么

抖音矩陣是指在同一品牌或個人IP下&#xff0c;通過創建多個不同定位的抖音賬號&#xff08;如主號、副號、子號等&#xff09;&#xff0c;形成一個有機的整體&#xff0c;以實現多維度、多層次的內容覆蓋和用戶互動。以下是關于抖音矩陣的詳細介紹&#xff1a; 抖音矩陣的類…

【開發日記】Docker修改國內鏡像源

1、問題&#xff1a; docker pull鏡像時提示以下內容&#xff1a; Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)2、解決 ①…

Centos7 解決Maven scope=system依賴jar包沒有打包到啟動jar包中的問題(OpenCV-4.10)

最近項目中遇到問題,OpenCV的Jar包在程序打包后,找不到相關的類,比如MAT,這個時候懷疑OpenCV_4.10的Jar沒有和應用程序一起打包,后面排查到確實是沒有打包進去,特此記錄,便于日后查閱。 <!-- 加載lib目錄下的opencv包 --> <dependency><groupId>org…

【后端面試總結】Golang可能的內存泄漏場景及應對策略

Golang可能的內存泄漏場景及應對策略 一、引言 Golang作為一種高性能、并發友好的編程語言&#xff0c;其內置的垃圾回收機制極大地簡化了內存管理。然而&#xff0c;這并不意味著開發者可以完全忽視內存泄漏問題。在實際開發中&#xff0c;由于不當的資源管理、循環引用、以…

【LeetCode】:刪除回文子數組【困難】

class Solution { public:// 思考:能否用滾動數組進行優化int minimumMoves(vector<int>& arr) {// 定義狀態dp[i][j]為i-j的最小步數int n arr.size();vector<vector<int>> dp(n, vector<int>(n, 1e9 7));// 可以把這 1 次理解為一種 最小操作單…

ChatGPT入門之文本情緒識別:先了解LSTM如何處理文字序列

文章目錄 0. 首先聊聊什么是RNN1. 理解LSTM&#xff0c;從數據如何喂給 LSTM開始2. LSTM每個門是如何處理序列數據的&#xff1f;2.1 遺忘門&#xff08;Forget Gate&#xff09;&#xff1a;該忘掉哪些信息&#xff1f;2.2 輸入門&#xff08;Input Gate&#xff09;&#xff…

AI學習路線圖-邱錫鵬-神經網絡與深度學習

1 需求 神經網絡與深度學習 2 接口 3 示例 4 參考資料

C#用直線和曲線抗鋸齒

使用 GDI 繪制一條線時&#xff0c;要提供線條的起點和終點&#xff0c;但不必提供有關線條上各個像素的任何信息。 GDI 與顯示驅動程序軟件協同工作&#xff0c;確定將打開哪些像素以在特定顯示設備上顯示該線條。 效果對比 代碼實現 關鍵代碼 e.Graphics.SmoothingMode Sm…

【opencv】第8章 圖像輪廓與圖像分割修復

8.1 查找并繪制輪廓 一個輪廓一般對應一系列的點&#xff0c;也就是圖像中的一條曲線。其表示方法可能 根據不同的情況而有所不同。在OpenCV 中&#xff0c;可以用findContours()函數從二值圖 像中查找輪廓 8.1.1 尋找輪廓&#xff1a; findContours() 函數 findContours) 函…

基于文件系統分布式鎖原理

分布式鎖&#xff1a;在一個公共的存儲服務上打上一個標記&#xff0c;如Redis的setnx命令&#xff0c;是先到先得方式獲得鎖&#xff0c;ZooKeeper有點像下面的demo,比較大小的方式判決誰獲得鎖。 package com.ldj.mybatisflex.demo;import java.util.*; import java.util.co…

Unity 大地圖功能 離線瓦片地圖

不使用第二個攝像機實現類似開放世界的大地圖功能。 功能如下&#xff1a; 按下M鍵打開/關閉大地圖功能 打開大地圖時&#xff0c;默認玩家位置居中 大地圖支持拖拽&#xff0c;可調節拖拽速度&#xff0c;支持XY軸翻轉 支持大地圖設置邊緣偏移量 可設置是否啟動拖拽邊界 …

Bootstrap 前端 UI 框架

Bootstrap官網&#xff1a;Bootstrap中文網 鉑特優選 Bootstrap 下載 點擊進入中文文檔 點擊下載 生產文件是開發響應式網頁應用&#xff0c;源碼是底層邏輯代碼&#xff0c;因為是要制作響應式網頁&#xff0c;所以下載開發文件 引入 css 文件&#xff0c; bootstrap.css 和 …