久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

    1. <style id="76ofp"></style>

      <style id="76ofp"></style>
      <rt id="76ofp"></rt>
      <form id="76ofp"><optgroup id="76ofp"></optgroup></form>
      1. 千鋒教育-做有情懷、有良心、有品質的職業(yè)教育機構

        手機站
        千鋒教育

        千鋒學習站 | 隨時隨地免費學

        千鋒教育

        掃一掃進入千鋒手機站

        領取全套視頻
        千鋒教育

        關注千鋒學習站小程序
        隨時隨地免費學習課程

        當前位置:首頁  >  技術干貨  > Python爬蟲原理

        Python爬蟲原理

        來源:千鋒教育
        發(fā)布人:xqq
        時間: 2023-11-07 07:33:56 1699313636

        簡單來說互聯(lián)網(wǎng)是由一個個站點和網(wǎng)絡設備組成的大網(wǎng),我們通過瀏覽器訪問站點,站點把HTML、JS、CSS代碼返回給瀏覽器,這些代碼經(jīng)過瀏覽器解析、渲染,將豐富多彩的網(wǎng)頁呈現(xiàn)我們眼前;

        一、爬蟲是什么?

        如果我們把互聯(lián)網(wǎng)比作一張大的蜘蛛網(wǎng),數(shù)據(jù)便是存放于蜘蛛網(wǎng)的各個節(jié)點,而爬蟲就是一只小蜘蛛,

        沿著網(wǎng)絡抓取自己的獵物(數(shù)據(jù))爬蟲指的是:向網(wǎng)站發(fā)起請求,獲取資源后分析并提取有用數(shù)據(jù)的程序;

        從技術層面來說就是通過程序模擬瀏覽器請求站點的行為,把站點返回的HTML代碼/JSON數(shù)據(jù)/二進制數(shù)據(jù)(圖片、視頻)爬到本地,進而提取自己需要的數(shù)據(jù),存放起來使用;

        二、爬蟲的基本流程:

        用戶獲取網(wǎng)絡數(shù)據(jù)的方式:

        方式1:瀏覽器提交請求--->下載網(wǎng)頁代碼--->解析成頁面

        方式2:模擬瀏覽器發(fā)送請求(獲取網(wǎng)頁代碼)->提取有用的數(shù)據(jù)->存放于數(shù)據(jù)庫或文件中

        1、發(fā)起請求

        使用http庫向目標站點發(fā)起請求,即發(fā)送一個Request

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

        Request模塊缺陷:不能執(zhí)行JS和CSS代碼

        2、獲取響應內容

        如果服務器能正常響應,則會得到一個Response

        Response包含:html,json,圖片,視頻等

        3、解析內容

        解析html數(shù)據(jù):正則表達式(RE模塊),第三方解析庫如Beautifulsoup,pyquery等

        解析json數(shù)據(jù):json模塊

        解析二進制數(shù)據(jù):以wb的方式寫入文件

        4、保存數(shù)據(jù)

        數(shù)據(jù)庫(MySQL,Mongdb、Redis)

        文件

        三、http協(xié)議請求與響應

        Request:用戶將自己的信息通過瀏覽器(socketclient)發(fā)送給服務器(socketserver)

        Response:服務器接收請求,分析用戶發(fā)來的請求信息,然后返回數(shù)據(jù)(返回的數(shù)據(jù)中可能包含其他鏈接,如:圖片,js,css等)

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

        四、request

        1、請求方式:

        常見的請求方式:GET/POST

        2、請求的URL

        url全球統(tǒng)一資源定位符,用來定義互聯(lián)網(wǎng)上一個唯一的資源例如:一張圖片、一個文件、一段視頻都可以用url唯一確定

        url編碼

        https://www.baidu.com/s?wd=圖片

        圖片會被編碼(看示例代碼)

        網(wǎng)頁的加載過程是:

        加載一個網(wǎng)頁,通常都是先加載document文檔,

        在解析document文檔的時候,遇到鏈接,則針對超鏈接發(fā)起下載圖片的請求

        3、請求頭

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

        cookies:cookie用來保存登錄信息

        注意:一般做爬蟲都會加上請求頭

        請求頭需要注意的參數(shù):

        (1)Referrer:訪問源至哪里來(一些大型網(wǎng)站,會通過Referrer做防盜鏈策略;所有爬蟲也要注意模擬)

        (2)User-Agent:訪問的瀏覽器(要加上否則會被當成爬蟲程序)

        (3)cookie:請求頭注意攜帶

        4、請求體

        請求體

        如果是get方式,請求體沒有內容(get請求的請求體放在url后面參數(shù)中,直接能看到)

        如果是post方式,請求體是formatdata

        ps:

        1、登錄窗口,文件上傳等,信息都會被附加到請求體內

        2、登錄,輸入錯誤的用戶名密碼,然后提交,就可以看到post,正確登錄后頁面通常會跳轉,無法捕捉到post

        五、響應Response

        1、響應狀態(tài)碼

        200:代表成功

        301:代表跳轉

        404:文件不存在

        403:無權限訪問

        502:服務器錯誤

        2、responeheader

        響應頭需要注意的參數(shù):

        (1)Set-Cookie:BDSVRTM=0;path=/:可能有多個,是來告訴瀏覽器,把cookie保存下來

        (2)Content-Location:服務端響應頭中包含Location返回瀏覽器之后,瀏覽器就會重新訪問另一個頁面

        3、preview就是網(wǎng)頁源代碼

        JSO數(shù)據(jù)

        如網(wǎng)頁html,圖片

        二進制數(shù)據(jù)等

        六、總結

        1、總結爬蟲流程:

        爬取--->解析--->存儲

        2、爬蟲所需工具:

        請求庫:requests,selenium(可以驅動瀏覽器解析渲染CSS和JS,但有性能劣勢(有用沒用的網(wǎng)頁都會加載);)

        解析庫:正則,beautifulsoup,pyquery

        存儲庫:文件,MySQL,Mongodb,Redis

        以上內容為大家介紹了Python爬蟲原理,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。http://m.2667701.com/

        tags: python培訓
        聲明:本站稿件版權均屬千鋒教育所有,未經(jīng)許可不得擅自轉載。
        10年以上業(yè)內強師集結,手把手帶你蛻變精英
        請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
        免費領取
        今日已有369人領取成功
        劉同學 138****2860 剛剛成功領取
        王同學 131****2015 剛剛成功領取
        張同學 133****4652 剛剛成功領取
        李同學 135****8607 剛剛成功領取
        楊同學 132****5667 剛剛成功領取
        岳同學 134****6652 剛剛成功領取
        梁同學 157****2950 剛剛成功領取
        劉同學 189****1015 剛剛成功領取
        張同學 155****4678 剛剛成功領取
        鄒同學 139****2907 剛剛成功領取
        董同學 138****2867 剛剛成功領取
        周同學 136****3602 剛剛成功領取
        相關推薦HOT
        彰化市| 塔城市| 济宁市| 新平| 湘潭县| 五莲县| 故城县| 沅陵县| 晋宁县| 炉霍县| 岐山县| 汉阴县| 高州市| 潮安县| 台北县| 科技| 霍城县| 乌海市| 乳山市| 昌都县| 抚顺市| 彭州市| 新郑市| 定陶县| 米脂县| 武宣县| 连城县| 南昌县| 建阳市| 门头沟区| 郁南县| 东光县| 溧水县| 宜黄县| 普安县| 砚山县| 柳州市| 石台县| 兴仁县| 宜君县| 三原县|