爬蟲原理和網頁構造

  • 爬蟲原理
    • 網絡鏈接:計算機一次Request請求和服務器端的Response迴應,即實現了網絡鏈接。
    • 爬蟲原理:(1)模擬計算機對服務器發起的Request請求;(2)接收服務器端的Response內容並解析,提取所需的信息。有多頁面爬蟲和跨頁面爬蟲。
  • 網頁構造:安裝和使用和chrome瀏覽器;
  • 安裝須要的第三方庫:Requests,BeautifulSoup,Lxml;
    • Requests庫:讓HTTP服務人類;做用就是請求網站獲取網頁數據的;
      • 有時爬蟲須要加入請求頭來假裝成瀏覽器,以便更好地抓取數據;
      • 步驟:在chrome瀏覽器中打開開發者工具,點擊network,按f5刷新網頁,點擊name裏的任意文件,找到User-Agent進行復制;
    • BeautifulSoup庫:用來解析Requests庫請求的網頁,並把網頁源代碼解析爲Soup文檔,以便過濾提取數據。
      • BeautifulSoup庫除了支持python標準庫中的HTML解析器外,還支持一些第三方的解析器;BeautifulSoup庫解析器有:python標準庫,lxml HTML解析器,Lxml XML解析器,html5lib解析器;
      • BeautifulSoup庫在python標準庫中的使用方法:BeautifulSoup(makeup,"html.parser")
      • BeautifulSoup庫在lxml HTML解析器中的使用方法:BeautifulSoup(makeup,"lxml") (官方推薦,速度快,文檔容錯能力強)
      • 解析獲得的Soup文檔能夠使用find()和find_all()方法及selector()方法定位須要的元素;
        • selector()方法:soup.selector(div.item > a >h1) 括號內容經過chrome複製獲得;
        • 注意:li:nth-child(1)在python中運行會報錯,需改成li:nth-of-type(1);
        • 打印數據時,若提取的信息包含標籤,能夠用get_text()方法得到中間的文字信息;
    • Lxml庫:基於libxml2這一個XML解析庫的python封裝。該模塊使用c語言編寫,解析速度比BeautifulSoup庫更快。
相關文章
相關標籤/搜索