淺談爬蟲 《一》 ===python
?‘’正文之前先啰嗦一下,準確來說,在下還只是一個剛入門IT世界的菜鳥,工作近兩年了,之前做前端的時候就想寫博客來著,現在都轉做python了,如果還不開始寫點什么,估計時間都不會原諒這么懶散的我了……
閑話到此,下面說正事兒——首先來個爬蟲簡介
??咋一聽挺神秘的樣子,簡單來講爬蟲就是從網絡獲取資源,比如你想知道淘寶上的女裝什么顏色的銷量好,或者哪一款零食比較有賺頭兒…… ??在說現在流行的人工智能,其實所謂的人工智能也就是足夠的數據支撐,以及數據標記等等,使機器可以對足夠多的場景作出反應……以上純屬個人觀點,如有不對請指正
這次是真的講正題了,爬蟲分類,爬蟲原理,以及python代碼簡單實現
比較同用的說法:爬蟲分兩類
- 通用爬蟲(也叫作搜索引擎爬蟲)
- 聚焦爬蟲
總的來說都是網絡爬蟲!
????我們這里主要談論的是聚焦爬蟲:
爬蟲簡單來講分三步:
- 發起請求
- 得到反饋
- 處理數據
由于python2已經快要停止更新了(大概2020年停止), 所以我們這里直接談論python3的方法
# 導入需要的工具包
from urllib.request import Request,urlopen
# 發起請求(以請求百度為例) request = Request('http://www.baidu.com') # 得到反饋 response = urlopen(request) # 獲取數據流 data = response.read() # 數據打印并且轉碼為 UTF-8 print(data.decode("utf-8"))
打印結果(簡略)
<!DOCTYPE html>
<!--STATUS OK-->
<html>
<head> ………… <title>百度一下,你就知道</title> …………
俗話說越是簡單的越南學習,在爬蟲這里就體現出來了, 上面的代碼看起來簡單,理解起來也沒難度,但是不實用,只要網站稍做防范(反爬蟲),就只能傻傻發呆了……,如果您打算從事爬蟲工作那么發爬蟲將是您工作生涯的中心!
下面介紹一個簡單的反爬蟲的例子:
from urllib.request import Request,urlopen
# 請求頭信息,偽裝成瀏覽器訪問
ua_header = {"User-Agent" : "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0;"} request = Request("http://note.youdao.com/iyoudao/?p=2411",headers=ua_header) #urlopen()函數,url是必須要傳入的,data如果傳入就是POST請求,如果不傳就是GETT請求 response = urlopen(request) #到服務器返回的數據,讀取里面的全部內容 response_data = response.read() #打印返回的數據 print(response_data.decode("utf-8"))
只在請求頭(ua_header)里面添加(User-Agent)只是最簡單的偽裝反爬,更多的反爬蟲的方式包括但不限于cookie,session,代理等等。反爬方式有待探究,下次討論簡單代理以及爬蟲的其他庫
?