Python 爬蟲 校花網


 爬蟲:是一種按照一定的規則,自動地抓取萬維網信息的程序或者腳本。

 福利來了  校花網 ,首先說為什么要爬這個網站呢,第一這個網站簡單爬起來容易,不會受到打擊,第二呢 你懂得...。


 

1.第一步,需要下載爬蟲所用

Requests模塊,當安裝Python的時候會自動安裝上pip管理包工具,要是沒有的話自己下載一下,地址

 

1.1  第二步打開的cmd 運行 pip install requests 命令,然后回車,會自動下載。

  

 

2.打開你的Pycharm,引入你的requests包,requests模塊是可以模擬發送請求的一個模塊,也有其他模塊比如:urllib、httplib、Queue...等等。

    另外 re 是正則模塊,還有 os 對文件操作模塊都引用上。

 

  

3.然后定義一個方法SaveImage(),用戶保存獲取圖片的方法。

  3.1 由於不可能保存一張圖片,所以圖片url和name都寫成參數形式。

  3.2 with open as 關鍵字是對操作文件的一種封裝,包括異常處理和釋放資源都有 。

  3.3  write()  是寫入二進制,所以 response.content 返回的是二進制。

 

 

4. 上面說到不可能只保存一直圖片,所以要定義一個方法GetImage()獲取當前頁面所有圖片的url和name。

    4.1 首頁先Get請求校花網其中一個導航欄中的url。

    4.2 然后設置編碼格式,可以右鍵在源代碼中的 charset 查看,這里是 "gbk" 編碼格式。

    4.3 然后使用正則的 findall()方法,參數是一個正則和一個網頁源代碼,用 page.text可以獲取到,返回一個字典類型。

    4.5 然后循環打印 url和name,並調用上面寫的保存圖片的SaveImage()存起來。

 

5.到目前為止可以獲取到整頁的圖片和名字了,那么有許多頁怎么辦呢,很簡單....

  5.1 為什么要把第一頁的url拿出來呢,因為是這個網站的第一頁和其他頁的url規則不一樣,所以單獨處理一下。

  5.2 然后for循環,循環 range(),這里 1,13 代表從1開始,到13前的一個數結束。

  5.3 在循環的過程中調用獲取GetImage()方法.

  5.4 最后一步,每次循環的時候 使用 %s 占位符 改變翻頁的url。然后Ctrl+Shift+F10 完成!

 

6. 然后把這些零碎的代碼串起來就可以了。

  

 1 import requests,re,os
 2 
 3 #文件夾名稱
 4 FileName= 'download'
 5 #保存圖片
 6 def SaveImage(image,name="temp"):
 7     #圖片存放路徑
 8      fpath = os.path.join(FileName, name+'.jpg')
 9      response=requests.get("http://www.xiaohuar.com/d/file/"+image).content
10      #寫入圖片
11      with open(fpath+'.jpg', 'wb+') as f:
12          f.write(response)
13 
14 #獲取當前頁圖片Url集合
15 def GetImage(fanyeUr):
16     #請求頁面
17     page =requests.get(fanyeUr)
18     #設置編碼
19     page.encoding='gbk'
20     #正則獲取圖片集合
21     imglist = re.findall('alt="(.*?)" src="/d/file/(.*?\.jpg)"', page.text)
22     #循環保存圖片
23     for name,url in imglist:
24         print(url,name)
25         SaveImage(url,name)
26 
27 #判斷文件夾是否存在
28 if not os.path.exists(os.path.join(os.getcwd(), FileName)):
29     #新建文件夾
30     os.mkdir(os.path.join(os.getcwd(),FileName))
31 
32 #請求第一頁
33 fanyeUr='http://www.xiaohuar.com/p/suyan/index.html'
34 #循環翻頁
35 for faye in range(1,13):
36     #獲取翻頁Url
37     GetImage(fanyeUr)
38     fanyeUr='http://www.xiaohuar.com/p/suyan/index_%s.html' % faye

 

7.查看效果完成,爬的照片就不貼了,好好學習,天天向上

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM