狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

[點晴永久免費OA]巨細!Python爬蟲詳解

freeflydom
2024年1月16日 9:32 本文熱度 871

導讀:爬蟲(又稱為網頁蜘蛛,網絡機器人,在 FOAF 社區中間,更經常的稱為網頁追逐者);它是一種按照一定的規則,自動地抓取網絡信息的程序或者腳本。

作者:潮汐

來源:Python 技術「ID: pythonall」



如果我們把互聯網比作一張大的蜘蛛網,那一臺計算機上的數據便是蜘蛛網上的一個獵物,而爬蟲程序就是一只小蜘蛛,他們沿著蜘蛛網抓取自己想要的獵物/數據。

01 爬蟲的基本流程



02 網頁的請求與響應

網頁的請求和響應方式是 Request 和 Response。

  • Request:用戶將自己的信息通過瀏覽器(socket client)發送給服務器(socket server)

  • Response:服務器接收請求,分析用戶發來的請求信息,收到請求信息后返回數據(返回的數據中可能包含其他鏈接,如:image、js、css等)

瀏覽器在接收 Response 后,會解析其內容來顯示給用戶,而爬蟲程序在模擬瀏覽器發送請求然后接收 Response 后,是要提取其中的有用數據。

1. 發起請求:Request

請求的發起是使用 http 庫向目標站點發起請求,即發送一個Request。

Request對象的作用是與客戶端交互,收集客戶端的 Form、Cookies、超鏈接,或者收集服務器端的環境變量。

Request 對象是從客戶端向服務器發出請求,包括用戶提交的信息以及客戶端的一些信息。客戶端可通過 HTML 表單或在網頁地址后面提供參數的方法提交數據。

然后服務器通過 request 對象的相關方法來獲取這些數據。request 的各種方法主要用來處理客戶端瀏覽器提交的請求中的各項參數和選項。

Request 包含:請求 URL、請求頭、請求體等。

  • Request 請求方式: GET/POST

  • 請求url: url全稱統一資源定位符,一個網頁文檔、一張圖片、 一個視頻等都可以用url唯一來確定

  • 請求頭:User-agent:請求頭中如果沒有 user-agent 客戶端配置,服務端可能將你當做一個非法用戶;

  • cookies:cookie 用來保存登錄信息

一般做爬蟲都會加上請求頭。

例如:抓取百度網址的數據請求信息如下:



2. 獲取響應內容

爬蟲程序在發送請求后,如果服務器能正常響應,則會得到一個Response,即響應。

Response 信息包含:html、json、圖片、視頻等,如果沒報錯則能看到網頁的基本信息。例如:一個的獲取網頁響應內容程序如下:

import requests

request_headers={

'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',

'Cookie': 'BIDUPSID=088AEC1E85F75590978FB3643E131FBA; PSTM=1603682377; BD_UPN=12314753; BDUSS_BFESS=s877ukkvpiduup96naoovu0b94; __yjs_duid=1_04c448abb85383e7fef98fb64b828cce1611538687284; BAIDUID=C6421D51B2DBFF82716EE84B116A4EF8:FG=1; BDSFRCVID_BFESS=rqtOJeC62uF1xmOeQXfguRnVq2hi4t5TH6aINJzxxKt_7w4IsZNSEG0PVf8g0Kubuo1BogKKWeOTHx8F_2uxOjjg8UtVJeC6EG0Ptf8g0f5; H_BDCLCKID_SF_BFESS=tbCH_ItXfCP3JRnYb-Qoq4D_MfOtetJyaR0fKU7vWJ5TEJjz3tuabp_8Lx4H3bQNaHc3Wlvctn3cShPCy-7m-p_z-J6bK6jULNchMhrL3l02VMQae-t2ynLV5HAOW-RMW23U0l7mWPPWsxA45J7cM4IseboJLfT-0bc4KKJxbnLWeIJEjjChDTcyeaLDqbQX2COXsROs2ROOKRcgq4bohjPDynn9BtQmJJrtX4Jtb4oqE4FxQRoChlKJhJAO2JJqQg-q3R5lLt02VlQueq3vBP0Fbfv80x-jLIOOVn0MW-KVo-Jz5tnJyUPibtnnBnkO3H8HL4nv2JcJbM5m3x6qLTKkQN3T-PKO5bRu_CFbtC_hMD-6j6RV-tAjqG-jJTkjt-o2WbCQ-tjM8pcNLTDK5f5L2Mc9Klov5DvtbJrC-CosjDbmjqO1j4_PX46EhnvibN8fLKbY-McFVp5jDh34b6ksD-Rt5JQytmry0hvcQb5cShn9eMjrDRLbXU6BK5vPbNcZ0l8K3l02V-bIe-t2b6Qh-p52f6LjJbC83e; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; H_PS_PSSID=33425_33439_33258_33272_31660_33463_33459_33321_33264; BAIDUID_BFESS=983CAD9571DCC96332320F573A4A81D5:FG=1; delPer=0; BD_CK_SAM=1; PSINO=7; BDRCVFR[tox4WRQ4-Km]=mk3SLVN4HKm; BDRCVFR[-pGxjrCMryR]=mk3SLVN4HKm; BDRCVFR[CLK3Lyfkr9D]=mk3SLVN4HKm; BDRCVFR[dG2JNJb_ajR]=mk3SLVN4HKm; BD_HOME=1; H_PS_645EC=0c49V2LWy0d6V4FbFplBYiy6xyUu88szhVpw2raoJDgdtE3AL0TxHMUUFPM; BA_HECTOR=0l05812h21248584dc1g38qhn0r; COOKIE_SESSION=1_0_8_3_3_9_0_0_7_3_0_1_5365_0_3_0_1614047800_0_1614047797%7C9%23418111_17_1611988660%7C5; BDSVRTM=1',

'Host':'www.baidu.com',

'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36'}


response = requests.get('https://www.baidu.com/s',params={'wd':'帥哥'},headers=request_headers) #params內部就是調用urlencode

print(response.text)

以上內容輸出的就是網頁的基本信息,它包含 html、json、圖片、視頻等,如下圖所示:



Response 響應后會返回一些響應信息,例下:

1)響應狀態
  • 200:代表成功

  • 301:代表跳轉

  • 404:文件不存在

  • 403:權限

  • 502:服務器錯誤

2)Respone header
  • set-cookie:可能有多個,是來告訴瀏覽器,把cookie保存下來。

3)preview 是網頁源代碼

最主要的部分,包含了請求資源的內容,如網頁html、圖片、二進制數據等

4)解析內容
  • 解析 html 數據:解析 html 數據方法有使用正則表達式、第三方解析庫如 Beautifulsoup,pyquery 等

  • 解析 json 數據:解析 json數據可使用 json 模塊

  • 解析二進制數據:以 b 的方式寫入文件

5)保存數據

爬取的數據以文件的形式保存在本地或者直接將抓取的內容保存在數據庫中,數據庫可以是 MySQL、Mongdb、Redis、Oracle 等……

03 寫在最后

爬蟲的總流程可以理解為:蜘蛛要抓某個獵物-->沿著蛛絲找到獵物-->吃到獵物;即爬取-->解析-->存儲。

在爬取數據過程中所需參考工具如下:

  • 爬蟲框架:Scrapy

  • 請求庫:requests、selenium

  • 解析庫:正則、beautifulsoup、pyquery

  • 存儲庫:文件、MySQL、Mongodb、Redis……

04 總結

今天的文章是對爬蟲的原理做一個詳解,希望對大家有幫助,同時也在后面的工作中奠定基礎!

轉自:https://cloud.tencent.com/developer/article/1815295


該文章在 2024/1/16 9:35:26 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved