版權聲明:本文為作者原創(chuàng)文章,可以隨意轉載,但必須在明確位置標明出處!?。?/h3>
tips:本基礎系列旨在以爬蟲帶大家入門Python語言
這段時間有點忙,沒有抽出時間來給該基礎系列做最后的總結,今天正好有空,所以用最后一個練手項目作為該基礎系列的答卷。本文并不會提供參考代碼,本文只在邏輯上講解該如何去實現(xiàn)它,也算是給各位初學者布置的一份作業(yè),當然若是你有什么不明白的地方也可以私信我。
作業(yè)
作業(yè)是什么呢,作業(yè)就是爬取陶女郎里的美女模特,淘女郎的主頁就像項目這樣的。

爬取思想
前面的文章講過網絡爬蟲的開發(fā)步驟,這里再提一下。
- 使用開發(fā)者工具查看頁面元素
- 找到你要爬的目標元素
- 尋找目標元素的規(guī)律
- 使用正則表達式提取你想要的元素(當然你也可以使用相應的庫想BeautifulSoup,lxml都可以)
- 存儲你元素
爬蟲的思想大致就是這樣的,找規(guī)律的同事加上一定的猜想,基本就妥妥的了。下面我們通過開發(fā)者工具查看一下頁面元素,看到的結果如下圖所示,所有模特的照片都包含在一對ul標簽里。

確定元素
我們用urlopen來打開一個網頁的時候獲取到的是該頁面的靜態(tài)文本,所以我們要確認我們需要的信息是否在靜態(tài)頁面里,右鍵鼠標查看頁面代碼,我們在源碼里搜索「朱琳」這個人,發(fā)現(xiàn)頁面源碼里并沒有這個人的信息。

那么問題來,模特的信息應該是動態(tài)信息,那咋弄呢。
NETWORK使用
既然網頁信息是動態(tài)的,那么它肯定想服務器提交了什么查詢動作,那么很正常的我們就想到了使用開發(fā)者工具里的NETWORK工具,查看瀏覽器和服務器都有哪些網絡交互。如下圖:

從圖中箭頭所指的地方往下全是圖片信息,而且它的Type是xhr,那么我們可以猜想肯定是它發(fā)起了一個異步的請求,鼠標單機該項我們來看看該請求是什么請求,都帶了哪些參數(shù)。

從圖中可以看到是一個POST請求,請求的地址是:https://mm.taobao.com/tstar/search/tstar_model.do;從.do文件結尾我知道淘女郎應該使用Java開發(fā)的。我們看看POST帶了哪些參數(shù)

箭頭指的地方就是POST索要提交的參數(shù),從字面意思應該能猜到幾個參數(shù)的意思,遇到viewFlag、q這種參數(shù)不好猜的情況就好的辦法就是在網頁上隨變做一些操作再看這些參數(shù)有什么變化,觀察幾次你自然就知道每個參數(shù)所代表的意思了。在看看該POST請求都返回了什么,可以點擊查看Response一項,你可以看到是一個json的字符串,模特的信息就包含在searchDOList里。

當然你也可以在Preview想查看,Preview項看到的結果是這樣的

驗證
復制其中任何一個圖片地址到瀏覽器里打開它,看看結果是什么。

從結果中我們可以看到這張照片就是「朱琳」這個人的封面照
okay,爬蟲的基礎系列就到這里結束了,各位可以自己動手去試試。