什么是爬蟲
爬蟲的基本流程
什么是Request和Response
Request中包含什么
Response中包含什么
怎樣保存資料
⒈什么是爬蟲?
⑴簡單來說就是:請求網站并提取資料的自動化程式
⑵操作:右鍵--->審查元素(如若想提取鏈接資訊的話,就要從這些htm代碼提取文字和鏈接資訊,用決議庫決議以上的資訊,存成結構化的資料)
⒉爬蟲的基本流程
⑴robots.txt:通過在所要爬取的母網站后面增加robots.txt,即可查出所有不可爬取的網站
⑵發起請求:通過HTTP庫向目標站點發起請求,即發送一個request,請求可以包含額外的headers等資訊,等待服務器回應
⑶獲取回應內容:如果服務器能正常回應所要獲取的頁面內容,會得到一個Response,Response的內容便是,型別可能是HTML,JSON字串,二進制資料等型別;
⑷決議內容:得到的內容可能是HTML,可以用正則運算式、網頁決議庫進行決議;可能是JSON,可以直接轉為JSON物件決議,可能是二進制資料,可以做保存或者進一步處理;
⑸保存資料:保存形式多樣,可以存為文本,也可以保存至資料庫,或者保存特定格式檔案
⒊什么是Request和Response?
⑴請求方式:主要有GET、POST兩種型別,另外還有HEAD、PUT、DELETE、OPTIONS等。
⑵請求URL:URL全程統一資源定位符,如一個網頁檔案、一張圖片、一個視頻都可以用URL唯一來確定
⑶請求頭:包含請求時的頭部資訊,如User-Agent、Host、Cookies等資訊。
⑷請求體:請求時額外攜帶的資料,如表單提交時的表單資料(Eg:fromdata)
⒋Response中包含什么?
⑴回應狀態:有多重回應狀態,如200代表成功、301是跳轉、404為找不到網頁、502服務器錯誤
⑵回應頭:如內容型別、內容長度、服務器資訊、設定Cookie等等
⑶回應體:最主要的部分,包含了請求資源的內容,如網頁HTML、圖片二進制資料等
import requests
response = requests.get('http://www.baidu.com')
print(response.text)#回應體
print(response.headers)#回應頭
print(response.status_code)#回應狀態碼
headers = {}#定義一個頭部資訊
headers = {Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36}#次頭部資訊為電腦自身資訊
response1 = requests.get('http://www.baidu.com',headers = headers)#用新的headers請求百度
print(response1.status_code)#使用回應狀態碼進行檢驗
⒌能抓怎樣的資料
⑴網頁文本(如HTML檔案,JSON格式文本等)
⑵圖片(獲取二進制文本檔案,保存為圖片格式)
response2 = requests.get('https://www.baidu.com/img/bd_logo1.png')#抓取圖片
print(response2.content)#列印出來為二進制格式
with open('F:/dd.png','wb')as f:#創建一個檔案,格式為圖片格式
⑶視頻(同樣為二進制檔案,保存為音頻格式即可,抓取方法如圖片抓取方法)
⒍決議方式
⑴直接處理
⑵Json決議
⑶正則運算式
⑷BeautifulSoup
⑸PyQuery
⑹XPath
⒎怎樣保存資料?
⑴文本:純文本、Json、Xml等
⑵關系型資料庫:如MySQL、Oracle、SQL Server等具有結構化表結構形式存盤
⑶非關系型資料庫:MongoDB、Redis等Key-Value形式存盤
⑷二進制檔案:如圖片、視頻、音頻等等直接保存成特定格式即可
uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
加油uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
delphi語言談爬蟲,是不是太扯了,這并不是delphi的強項,delphi也沒什么強項了,效率比不上,開發易用性也比不上uj5u.com熱心網友回復:
你的怨念有多深~~~

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/35982.html
標籤:非技術區
