一:什麼是爬蟲mysql
請求網站並提取數據的自動化程序。正則表達式
二:爬蟲基本流程redis
a.發起請求sql
經過HTTP庫向目標站點發起請求,即發送一個Request,請求能夠包含額外的headers等信息,等服務器響應。mongodb
b.獲取響應內容數據庫
若是服務器能正常響應,會獲得一個Response,Response的內容即是所要獲取的頁面內容,類型可能有HTML,Json字符串,二進制數據(如圖片視頻)等類型。json
c.解析內容瀏覽器
獲得的內容多是HTML,能夠用正則表達式,網頁解析庫進行解析。多是Json,能夠直接轉換爲Json對象解析,多是二進制數據,能夠作保存或者進一步的處理。服務器
d.保存數據oracle
保存形式多樣,能夠存爲文本,也能夠保存至數據庫,或者保存特定格式的文件。
三:什麼是Requests、Response?
(1):瀏覽器發送消息給該網址所在的服務器,這個過程叫作HTTP Request。
(2):服務器收到瀏覽器發送的消息後,可以根據瀏覽器發送的內容,作相應處理,而後把消息回傳給瀏覽器。這個過程叫作HTTP Response。
(3):瀏覽器收到服務器的Response信息後,會對信息進行相應處理,而後展現。
四:Request包含哪些?
a、請求方式
主要有GET、POST兩種類型,另外還有HEAD、PUT、DELETE、OPTIONS等。
b、請求URL
URL全稱統一資源定位符,如一個網頁文檔,一張圖片、一個視頻等均可以用URL惟一來肯定。
c、請求頭
包含請求時的頭部信息,如User-Agent,Host,Cookies等信息。
d、請求體
請求時額外攜帶的數據如表單提交時的表單數據。
五:Response中包含什麼?
a、響應狀態
有多種響應狀態,如200表明成功、301跳轉、404找不到頁面、502服務器錯誤。
b、響應頭
如內容類型、內容長度、服務器信息、設置Cookie等等。
c、響應體
最主要的部分,包含了請求資源的內容,如網頁HTML、圖片二進制數據等。
六:能抓取怎樣的數據:
一、網頁文本:如:HTML文檔,json格式文本。
二、圖片:獲取到的是二進制文件,保存爲圖片格式。
三、視頻:同爲二進制文件,保存爲視頻格式便可。
四、其餘:只要能請求到的,都能獲取。
七:解析方式:
一、直接處理。
二、json解析
三、正則表達式
四、pyquery
五、xpath
六、beautifulsoup
八:如何解決JavaScript渲染問題?
一、分析Ajax
二、Selenium/WebDriver
三、Splash
四、pyV八、Ghost.py
保九:存數據:
一、文本:純文本,Json,xml
二、關係型數據庫,如mysql、oracle、sql server等具備結構化表結構形式存儲
三、非關係型數據庫,如mongodb、redis等key-value形式存儲。
四、二進制文件,如圖片、視頻、音頻等直接存成特定格式便可。