天天看點

python好看圖案_Python:好看的男人們,快到碗裡來!

title: 使用 Python 爬取帥哥到自己的電腦 date: 2018-11-18 01:03:22 tags: - 教程 - python - python爬蟲 - python基礎 categories: - python

寫在前面

前不久,公衆号背景有妹子不高興了,私信我說,我為什麼會覺得我公衆号的人都是喜歡看性感女人呢?什麼時候發發性感男人啊。

python好看圖案_Python:好看的男人們,快到碗裡來!

想想也是,畢竟關注這個公衆号有 15.6% 是妹紙呢。怎麼能沒有性感男人呢?

那麼接下來就把你想要的帥哥,用 Python 把它們裝進自己的電腦。

python好看圖案_Python:好看的男人們,快到碗裡來!

答應我,先别激動好麼?

分析帥哥圖檔位址

python好看圖案_Python:好看的男人們,快到碗裡來!

首先來分析一下我們要爬取的這些圖檔位址,通過 Chrome 的開發者工具可以看到這些圖檔的位址在 img 标簽中,但是這個位址有點奇怪,在 src 裡面還有一個 src 指向圖檔的位址,我們要的圖檔位址就是在第二個 src 指向的位址,是以我們的正則應該是這樣:

'

.*?'

當我們要點選下一頁的時候呢,可以發現請求位址攜帶了一個參數 /index_2.html ,是以我們可以通過這個變量來擷取多頁的圖檔資料。

爬取性感男人圖檔

那麼分析完之後我們就開始下手吧,我們可以建立一個叫做 shuaige 的圖檔檔案夾,專門來放這些帥哥的

os.mkdir(dirName)

os.chdir(dirName)

接着我們可以定義幾個變量:

pageNumber = 2 #用于擷取不同頁數的圖檔

x = 0 #用于圖檔名稱

img_address = [] #存放爬取到的圖檔位址

比如我們想要擷取第 2 到第 4 張圖檔,那麼我們就可以寫一個循環來擷取資料:

while pageNumber < 5 :

page_url = url + '/index_'+str(pageNumber)+'.html' #擷取不同頁數的圖檔

addrs = find_imgs(page_url) #擷取位址

for i in addrs:

if i in img_address :

continue

else:

img_address.append(i) # 降低至存追加到img_address這個變量裡面

pageNumber += 1

for each in img_address:

filename = str(x) + ".jpg"

x+=1

with open(filename,'wb') as f: # 将圖檔寫入檔案夾

img = url_open(each).content

f.write(img)

ok,我們來運作一下,可以看到在我們的項目目錄中建立了一個叫做 shuaige 的檔案夾,python 正在下載下傳我們要爬取的圖檔:

python好看圖案_Python:好看的男人們,快到碗裡來!

打開檔案夾一看,一堆性感男人都有了:

python好看圖案_Python:好看的男人們,快到碗裡來!

友情提示:小爬怡情,大爬傷身!

完整代碼:

import os

import re

import requests

def url_open(url):

# 以字典的形式添加請求頭

header = {

'User-Agent': "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0"

}

# 使用get方法發送請求擷取網頁源碼

response = requests.get(url, headers=header)

return response

def find_imgs(url):

html = url_open(url).text

pattern = re.compile('

.*?',re.S)

img_addrs = re.findall(pattern, html)

return img_addrs

def download_shuaige(dirName="shuaige"):

os.mkdir(dirName)

os.chdir(dirName)

pageNumber = 2

x = 0

img_address = []

while pageNumber < 5 :

page_url = url + '/index_'+str(pageNumber)+'.html'

addrs = find_imgs(page_url)

print(len(addrs))

for i in addrs:

if i in img_address :

continue

else:

img_address.append(i)

print(len(img_address))

for each in img_address:

print(each)

pageNumber += 1

for each in img_address:

filename = str(x) + ".jpg"

x+=1

with open(filename,'wb') as f:

img = url_open(each).content

f.write(img)

if __name__ == '__main__':

url = "http://www.shuaige5.com/tag/xinggannanren"

download_shuaige()

相關

ps:還沒擷取我精心準備的 Python 電子書和思維導圖等幹貨的可以在我的公衆号「學習Python的正确姿勢」中發送 python 免費擷取哦!

别忘了點個贊哦!