天天看點

了解爬蟲原理

改作業要求來源于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2851

一、簡單說明爬蟲原理

如果我們把網際網路比作一張大的蜘蛛網,資料便是存放于蜘蛛網的各個節點,而爬蟲就是一隻小蜘蛛,沿着網絡抓取自己的獵物(資料)爬蟲指的是:向網站發起請求,擷取資源後分析并提取有用資料的程式;從技術層面來說就是 通過程式模拟浏覽器請求站點的行為,把站點傳回的HTML代碼/JSON資料/二進制資料(圖檔、視訊) 爬到本地,進而提取自己需要的資料,存放起來使用;

基本流程大緻是:

發送請求-----》擷取響應内容-----》解析内容-----》儲存資料

二、了解爬蟲開發過程

1、簡要說明浏覽器工作原理

浏覽器工作原理的實質就是實作http協定的通訊,大緻分為三個階段:

連接配接,伺服器通過一個ServerSocket類對象對某端口進行監聽,監聽都之後進行連接配接,打開一個socket虛拟檔案。

請求,建立與監理socket連接配接相關的流對象後,浏覽器擷取請求,為get請求,則從請求資訊中擷取所通路的html檔案名,向伺服器發送請求。

響應,伺服器收到請求後,搜尋相關的目錄檔案,若不存在,傳回錯誤的資訊。若存在,則讀取html檔案,進行加http頭等處理響應給浏覽器,浏覽器解析html檔案,若其中還包含圖檔,視訊等資源,則浏覽器再次通路web伺服器,擷取圖檔視訊等,并對其進行組裝顯示給使用者。

2、使用 requests 庫抓取網站資料

import requests
url='http://news.gzcc.cn/html/xiaoyuanxinwen'
res = requests.get(url)
res.encoding=('utf-8')
print(res.text)
      

  結果如下圖:

了解爬蟲原理

3、使用 requests 庫抓取網站資料

了解網頁并且寫一個簡單的html檔案,包含多個标簽,類,id:

<html>
<head>
<meta charset="utf-8">
<body>
<h1 id="title">标題</h1>
<p>點選一下</p> 
<button type="button" id="button">按鈕</button>
</body>
</head>
</html>
      

  

4、使用 Beautiful Soup 解析網頁

通過BeautifulSoup(html_sample,'html.parser')把上述html檔案解析成DOM Tree

select(選擇器)定位資料

1.找出含有特定标簽的html元素

soup=BeautifulSoup(res.text,'html.parser')
soup.select('li')       

結果如圖:

了解爬蟲原理

2.找出含有特定類名的html元素

soup=BeautifulSoup(res.text,'html.parser')
for i in soup.select('.news-list-title'):
    print(i)
      
了解爬蟲原理

3.找出含有特定id名的html元素

soup=BeautifulSoup(res.text,'html.parser')
print(soup.select('#menu')[0].text)       

 結果如圖:

了解爬蟲原理

5、提取一篇校園新聞的标題、釋出時間、釋出機關

import requests
from bs4 import BeautifulSoup

url='http://news.gzcc.cn/html/2019/xiaoyuanxinwen_0320/11029.html'
res = requests.get(url)
res.encoding=('utf-8')
soup=BeautifulSoup(res.text,'html.parser')
title=soup.select('.show-title')
time=soup.select('.show-info')
print(title,'\n',time)
      

  結果如圖:

了解爬蟲原理