Python網頁數據抓取常用的庫及方法介紹

Python網頁數據抓取常用的庫及方法介紹

       摘要:以下是Python網絡數據抓取常用的6個庫的詳細介紹,包括它們的概述以及每個庫中最常用的10個函數(如果某些庫常用函數不足10個,則列出所有常用函數)。每個函數都附帶功能描述、用法說明和使用示例。這些庫在網絡爬蟲、數據采集和網頁解析領域被廣泛使用。

1. Requests

  • 概述:Requests 是一個簡單而強大的HTTP請求庫,用于發送HTTP請求和處理響應,適合網絡數據抓取和API交互。

1.1 常用函數

  1. requests.get()
    功能:發送GET請求獲取網頁內容或API數據。
    用法requests.get(url, params=None, headers=None)url 是目標地址,params 是查詢參數,headers 是請求頭。
    示例

    import requests
    response = requests.get('https://api.github.com')
    print(response.status_code)  # 輸出: 200 (請求成功)
    print(response.json())  # 輸出: JSON格式的響應內容
    
  2. requests.post()
    功能:發送POST請求,通常用于提交表單數據或API調用。
    用法requests.post(url, data=None, json=None, headers=None)data 是表單數據,json 是JSON數據。
    示例

    import requests
    payload = {'username': 'test', 'password': 'pass'}
    response = requests.post('https://httpbin.org/post', data=payload)
    print(response.json())  # 輸出: 服務器返回的表單數據
    
  3. requests.head()
    功能:發送HEAD請求,僅獲取響應頭信息,不返回響應體。
    用法requests.head(url, headers=None)url 是目標地址。
    示例

    import requests
    response = requests.head('https://www.example.com')
    print(response.headers)  # 輸出: 響應頭信息
    
  4. requests.put()
    功能:發送PUT請求,用于更新資源。
    用法requests.put(url, data=None, json=None)data 是更新數據。
    示例

    import requests
    payload = {'key': 'value'}
    response = requests.put('https://httpbin.org/put', json=payload)
    print(response.json())  # 輸出: 服務器返回的更新數據
    
  5. requests.delete()
    功能:發送DELETE請求,用于刪除資源。
    用法requests.delete(url)url 是目標地址。
    示例

    import requests
    response = requests.delete('https://httpbin.org/delete')
    print(response.status_code)  # 輸出: 200 (刪除成功)
    
  6. requests.Session()
    功能:創建會話對象,保持連接狀態(如cookie)。
    用法requests.Session()
    示例

    import requests
    session = requests.Session()
    session.get('https://httpbin.org/cookies/set/sessioncookie/123456789')
    response = session.get('https://httpbin.org/cookies')
    print(response.json())  # 輸出: 會話中的cookie
    
  7. requests.Response.status_code
    功能:獲取HTTP響應狀態碼。
    用法response.status_coderesponse 是請求返回的對象。
    示例

    import requests
    response = requests.get('https://www.example.com')
    print(response.status_code)  # 輸出: 200 (請求成功)
    
  8. requests.Response.text
    功能:以字符串形式獲取響應內容(適用于文本)。
    用法response.textresponse 是請求返回的對象。
    示例

    import requests
    response = requests.get('https://www.example.com')
    print(response.text[:100])  # 輸出: 網頁內容的前100個字符
    
  9. requests.Response.json()
    功能:將響應內容解析為JSON格式。
    用法response.json()response 是請求返回的對象。
    示例

    import requests
    response = requests.get('https://api.github.com')
    data = response.json()
    print(data)  # 輸出: JSON解析后的數據
    
  10. requests.Response.headers
    功能:獲取響應頭信息。
    用法response.headersresponse 是請求返回的對象。
    示例

    import requests
    response = requests.get('https://www.example.com')
    print(response.headers)  # 輸出: 響應頭字典
    

2. Beautiful Soup

  • 概述:Beautiful Soup 是一個用于解析HTML和XML文檔的庫,適合從網頁中提取結構化數據。

2.1 常用函數

  1. bs4.BeautifulSoup()
    功能:創建BeautifulSoup對象,解析HTML或XML內容。
    用法bs4.BeautifulSoup(markup, parser)markup 是HTML/XML字符串,parser 是解析器(如'lxml')。
    示例

    from bs4 import BeautifulSoup
    html = "<p>Hello, World!</p>"
    soup = BeautifulSoup(html, 'html.parser')
    print(soup.p.text)  # 輸出: Hello, World!
    
  2. BeautifulSoup.find()
    功能:查找第一個匹配的標簽或元素。
    用法soup.find(name, attrs)name 是標簽名,attrs 是屬性字典。
    示例

    from bs4 import BeautifulSoup
    html = "<div><p>First</p><p>Second</p></div>"
    soup = BeautifulSoup(html, 'html.parser')
    p_tag = soup.find('p')
    print(p_tag.text)  # 輸出: First
    
  3. BeautifulSoup.find_all()
    功能:查找所有匹配的標簽或元素,返回列表。
    用法soup.find_all(name, attrs)name 是標簽名,attrs 是屬性字典。
    示例

    from bs4 import BeautifulSoup
    html = "<div><p>First</p><

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

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

相關文章

6.5 note

一個很有意思的dfs模擬題_前序遍歷 這個問題的話前置內容顯然是字典序&#xff0c;什么是字典序呢&#xff1f; 顧名思義&#xff0c;就是詞語在字典中的順序&#xff0c;也就是我們最常說的a,abandon,ability&#xff08;我記得前三個是這個&#xff09; 這是一種字符串之間比…

day027-Shell自動化編程-基礎

文章目錄 1. 修改vim配置文件自動添加注釋2. 故障案例&#xff1a;Windows上寫的Shell腳本上傳到Linux系統上運行報錯3. 腳本運行方法4. 變量4.1 普通變量4.2 環境變量4.3 特殊變量4.4 案例&#xff1a;書寫ping檢查腳本&#xff0c;檢查腳本傳入的第一個參數4.5 面試題&#x…

2025年滲透測試面試題總結-騰訊[實習]科恩實驗室-安全工程師(題目+回答)

安全領域各種資源&#xff0c;學習文檔&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各種好玩的項目及好用的工具&#xff0c;歡迎關注。 目錄 騰訊[實習]科恩實驗室-安全工程師 一、網絡與協議 1. TCP三次握手 2. SYN掃描原理 3. HTTPS證書機制 二…

人工智能賦能高中學科教學的應用與前景研究

一、引言 1.1 研究背景 在科技飛速發展的當下&#xff0c;人工智能&#xff08;Artificial Intelligence&#xff0c;簡稱 AI&#xff09;已成為全球矚目的關鍵技術領域&#xff0c;深刻地改變著人們的生活、工作和學習方式。從智能家居設備到智能交通系統&#xff0c;從醫療…

八、【ESP32開發全棧指南:UDP客戶端】

1. 環境準備 安裝ESP-IDF v4.4 (官方指南)確保Python 3.7 和Git已安裝 2. 創建項目 idf.py create-project udp_client cd udp_client3. 完整優化代碼 (main/main.c) #include <string.h> #include "freertos/FreeRTOS.h" #include "freertos/task.h&…

Android Studio 解決首次安裝時下載 Gradle 慢問題

1、問題描述 第一次安裝 Android Studio 時&#xff0c; 新建工程后&#xff0c;在編譯時會自動去下載 Gradle&#xff0c;但是一般都會下載失敗&#xff0c;提示鏈接超時&#xff1a; Could not install Gradle distribution from https://services.gradle.org/distributions…

hive聚合函數多行合并

在數據倉庫和大數據處理的場景中&#xff0c;Hive提供了強大的SQL查詢能力&#xff0c;其中包括聚合函數用于處理和合并多行數據。本文將深入探討Hive中的幾種常見聚合函數及其在多行合并中的應用。 一、Hive中的常見聚合函數 Hive提供了多種聚合函數&#xff0c;這些函數可以…

關于物聯網的基礎知識(一)

成長路上不孤單&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a; 【14后&#x1f60a;///計算機愛好者&#x1f60a;///持續分享所學&#x1f60a;///如有需要歡迎收藏轉發///&#x1f60a;】 今日分享關于物聯網的基礎知識&#xff08;一&a…

遷移科技3D視覺系統:重塑紙箱拆垛場景的智能革命

一、傳統拆垛場景的困局與破局之道 在汽車零部件倉庫中&#xff0c;每天有超過2萬只異形紙箱需要拆垛分揀。傳統人工拆垛面臨三大挑戰&#xff1a; 效率瓶頸&#xff1a;工人每小時僅能處理200-300件&#xff0c;且存在間歇性疲勞安全隱患&#xff1a;20kg以上重箱搬運導致年…

微軟重磅發布Magentic UI,交互式AI Agent助手實測!

微軟重磅發布Magentic UI,交互式AI Agent助手實測! 何為Magentic UI? Magentic UI 是微軟于5.19重磅發布的開源Agent助手,并于24日剛更新了第二個版本0.04版 從官方的介紹來看,目標是打造一款 以人為中心 的智能助手,其底層由多個不同的智能體系統驅動,能夠實現網頁瀏覽…

Python實現快速排序的三種經典寫法及算法解析

今天想熟悉一下python的基礎寫法&#xff0c;那就從最經典的快速排序來開始吧&#xff1a; 1、經典分治寫法&#xff08;原地排序&#xff09; 時間復雜度&#xff1a;平均O(nlogn)&#xff0c;最壞O(n) 空間復雜度&#xff1a;O(logn)遞歸棧空間 特點&#xff1a;通過左右指針…

海康網絡攝像頭實時取幀轉Opencv數組格式(h,w,3),已實現python、C#

海康攝像頭取幀都是有官方demo的&#xff0c;但是將海康格式的數據轉為Opencv格式的沒有相關demo&#xff0c;而大部分深度學習圖像檢測算法(如YOLO)&#xff0c;都是用opencv格式的圖像作為輸入&#xff0c;因此將海康格式數據轉為opencv格式兼容性更強 需要代碼請私信聯系&a…

職坐標IT教育物聯網全棧開發實戰:傳感器到云平臺全鏈路

物聯網全棧開發涉及從終端感知到云端服務的全流程技術整合&#xff0c;其核心在于構建完整的“端-管-云-用”技術鏈條。為幫助開發者系統掌握這一能力&#xff0c;課程圍繞四大模塊展開&#xff1a;傳感器數據采集與處理、通信協議適配與優化、云平臺架構設計及跨平臺應用開發。…

LUFFY(路飛): 使用DeepSeek指導Qwen強化學習

論文標題 Learning to Reason under Off-Policy Guidance 論文地址 https://arxiv.org/pdf/2504.14945 代碼地址 https://github.com/ElliottYan/LUFFY 作者背景 上海人工智能實驗室&#xff0c;西湖大學&#xff0c;南京大學&#xff0c;香港中文大學 動機 目前大模型…

Android Camera Hal中通過Neon指令優化數據拷貝

背景描述&#xff1a; Camera apk普通相機模式錄像操作時&#xff0c;一般是同時請求兩個流&#xff0c;即預覽流和錄像流。對于兩個流輸出圖像格式和分辨率相同的情況下&#xff0c;是不是可以通過一個流拷貝得到另一個流的數據&#xff0c;進而節省掉一個Sensor輸出處理兩次…

WPS word 已有多級列表序號

wps的word中&#xff0c;原來已生成的文檔里&#xff0c;已存在序號。比如&#xff0c;存在2、2.1、2.1.1、2.1.1.1、2.1.1.1.1 5層序號&#xff0c;而且已分為5級。但增加內容的時候&#xff0c;并不會自動增加序號&#xff0c;應該如何解決&#xff1f; 原來長這樣&#xff…

從零開始制作小程序簡單概述

以下是結合案例的“從零制作小紅書風格小程序”的全流程指南&#xff0c;采用小紅書爆款筆記的結構呈現&#xff0c;并附CSDN參考資源&#x1f447;&#xff1a; 一、核心開發步驟&#xff08;附工具推薦&#xff09; 賬號與定位 ? 注冊類型選擇&#xff1a;個人店&#xff08…

【Go語言基礎【13】】函數、閉包、方法

文章目錄 零、概述一、函數基礎1、函數基礎概念2、參數傳遞機制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 錯誤處理 二、函數類型與高階函數1. 函數類型定義2. 高階函數&#xff08;函數作為參數、返回值&#xff09; 三、匿名函數與閉包1. 匿名函數&#xff08;Lambda函…

網絡編程之服務器模型與UDP編程

一、服務器模型 在網絡通信中&#xff0c;通常要求一個服務器連接多個客戶端 為了處理多個客戶端的請求&#xff0c;通常有多種表現形式 1、循環服務器模型 一個服務器可以連接多個客戶端&#xff0c;但同一時間只能連接并處理一個客戶的請求 socket() 結構體 bind() listen() …

open3D:三維點云處理

open3d 點云數據處理 爆肝5萬字??Open3D 點云數據處理基礎&#xff08;Python版&#xff09;_python 點云 焊縫-CSDN博客 如何用NumPy讀取和保存點云數據 - 知乎 讀取并可視化點云 np.loadtxt 從txt中讀取點集&#xff0c;并open3d顯示單個點云 txt內容&#xff1a;每行皆…