文章目錄
- 前言
- 正文
- 什么是爬蟲
- 爬蟲分類
- 通用爬蟲
- 聚焦爬蟲
- 爬蟲程式的作業模式
- 基本流程
- 爬蟲的應用和價值
- 最后
前言
前段時間搶茅臺腳本非常火,它是Python腳本,加上剛好最近在學習Python,我們準備通過這個腳本,來加深學習Python,
搶茅臺的腳本其實屬于爬蟲腳本的一類,它實作了模擬登陸,模擬訪問并抓取資料,于是我們從爬蟲開始來學習Python做專案,從這篇開始記錄下爬蟲相關的筆記和知識點,
有興趣也可以看下我們之前的文章
python搶購京東茅臺腳本-提升成功概率
python常用的資料結構list,tuple,dict,set總結
正文
什么是爬蟲
到底什么是爬蟲?你可以理解為爬蟲是互聯網上的一只蜘蛛,如果遇到一些網路資料或資源,這只“蜘蛛”可以把這些資料和資源爬取下來,
官方地講,爬蟲是請求網站并提取資料的自動化程式,
使用茅臺腳本來舉例,腳本程式實作模擬登陸京東賬號,保存登陸資訊,也實作訪問商品-茅臺,并且幫你搶購商品,成功下訂單等等,這類似于你打開京東網站登陸賬號密碼,瀏覽商品并下單的操作,腳本將這些操作都實作,形成一個自動化的程式,

爬蟲分類
通用爬蟲
通用網路爬蟲是捜索引擎抓取系統(Baidu、Google、Yahoo等)的重要組成部分,主要目的是將互聯網上的網頁下載到本地,形成一個互聯網內容的鏡像備份,
比如你發布的網站,需要給搜索引擎(百度)爬取過,才能在對應的搜索引擎(baidu)上搜索到,
聚焦爬蟲
聚焦爬蟲,是"面向特定主題需求"的一種網路爬蟲程式,它與通用搜索引擎爬蟲的區別在于: 聚焦爬蟲在實施網頁抓取時會對內容進行處理篩選,盡量保證只抓取與需求相關的網頁資訊,
搶購腳本就是這種“面向特定主題需求”的爬蟲程式,而我們主要學習的也是這樣的爬蟲程式,
爬蟲程式的作業模式
說實話,寫爬蟲程式最難的不是碼代碼,最難的要熟悉被爬網站的業務邏輯,了解網路請求的鏈接,需要的引數,反爬的處理等等,
對被爬網站的抓包分析我們后面再說,這里主要講一般的爬蟲程式的作業邏輯,
基本流程
- 發起請求:爬蟲程式首先都會向目標鏈接發起請求,獲取想要的資料,
比如搶購腳本,請求茅臺鏈接的處理:
logger.info('訪問商品的搶購連接...')
headers = {
'User-Agent': self.user_agent,
'Host': 'marathon.jd.com',
'Referer': 'https://item.jd.com/{}.html'.format(self.sku_id),
}
self.session.get(
url=self.seckill_url.get(
self.sku_id),
headers=headers,
allow_redirects=False)
發起請求前,需要組裝好訪問的headers,目的是模擬瀏覽器訪問,訪問目標鏈接,還要帶上必須的引數,比如商品ID,
常用的請求方法是GET 和 POST
GET: 引數一般放在鏈接上,我們在瀏覽器上輸入鏈接訪問,就是GET方法,
POST: 引數一般放在請求方法上,不會暴露,而且POST方法能攜帶的資料量比較大,比GET方法安全,常用在登陸,下訂單等敏感操作上,
- 獲取相應內容:發起請求后,服務器那邊會根據請求的引數,回傳對應商品的資料,
比如我們打開茅臺商品的頁面,會有一個狀態碼

我們可以根據這個狀態碼來判斷,是成功的還是失敗的,
常見的狀態碼有以下幾種:
200 成功回應
3xx:跳轉使用
404:找不到資源
500以上:服務器錯誤
- 決議內容:我們拿到服務器回傳的商品資料,可以提取回應的資料,但是需要怎么提取呢?
一般網站回傳的資料有幾種:- json格式的機構化資料
{"code":0,"whwswswws":"jM92rBfD0JFPpdmhM5FyRAw==","openall":1,"openalltouch":1,"processtype":1} - HTML資料
<a target="_blank" class="cate_menu_lk" href="//channel.jd.com/home.html">家居</a> <span class="cate_menu_line">/</span> <a target="_blank" class="cate_menu_lk" href="//channel.jd.com/furniture.html">家具</a> <span class="cate_menu_line">/</span> <a target="_blank" class="cate_menu_lk" href="//jzjc.jd.com/">家裝</a> <span class="cate_menu_line">/</span> <a target="_blank" class="cate_menu_lk" href="//channel.jd.com/kitchenware.html">廚具</a> </li> <li class="cate_menu_item" data-index="5" clstag="h|keycount|head|category_05a">- 圖片,視頻等二進制資料
我們需要根據不同的資料,做不一樣的決議,這里最方便的是json資料,它是結構化的,容易決議,
不過網站一般都是回傳HTML資料,我們就需要通過一些Python庫來決議了,
- json格式的機構化資料
一般決議的方法有幾種
1.直接處理,保存文本
2.json決議字串,結構化處理
3.正則運算式,決議規則字串,使用re庫
4.beautifulsoup決議庫,決議HTML資料的庫
5.pyquery
6.xpath
爬蟲的應用和價值
爬蟲程式的應用和價值顯而易見,可以自動搶購茅臺,當然,你也可以寫搶購各種優惠券,秒殺,高鐵搶票等,女同學可以爬取你喜歡的文章,微博保存下來,男同學可以爬取各種妹子圖保存下來yy,
有的人還會爬股票的資料,分析漲跌關系,制定模型,實作自動化炒股等,
對我們來說,能學會爬蟲,相當于也熟悉了python,可以自己寫一寫自動化的程式,減少很多重復的勞動,提高我們的作業效率,有更多時間做自己想做的事情,
最后
學習Python,學習爬蟲,可以幫助我們實作很多功能,大家有空可以一起學習,一起進步,
關注博主公眾號 “phper進階筆記”,獲取學習資料,一起學習Python,
希望大家點贊、評論、收藏
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/255175.html
標籤:其他
上一篇:虛擬機安裝步驟
