爬蟲入門程序(適合新手入門,爬取妹子圖片)

我是在B站上看到的一個視頻,視頻不長就40分鐘,對新手來說很好,簡單易懂還能激發興趣(當看到我的代碼爬到了那麼多妹子圖時,我對爬蟲的興趣頓時暴漲了許多)。下邊也分享了我的代碼,代碼不長有註釋,很簡單。視頻鏈接如下,有興趣的話可以看下https://www.bilibili.com/video/av75562300?from=search&seid=16725157051954348830

有圖有真相,下圖是我爬取到妹子,代碼中我設置了爬取11個妹子,所以就顯示了這幾個文件夾。

圖一  妹子文件夾

 

圖2 其中一個妹子的例子

 

我的代碼如下,是稍加修改過的。

"""請求網頁"""
import requests
import re
import time
import os

headers = {
    'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'
}

#爬取所有妹子的網頁
response = requests.get("https://www.vmgirls.com/",headers=headers)
html = response.text

"""解析網頁"""
def jiexi(html):
    dir_name = re.findall('<h1 class="post-title h3">(.*?)</h1>',html)[-1]
    if not os.path.exists(dir_name):
        os.mkdir(dir_name)
    urls = re.findall('<a href="(.*?)" alt=".*?" title=".*?" .*?></a>', html)
    return dir_name,urls

"""保存圖片"""
def saveImg(urls,dir_name):
    for url in urls:
        #time.sleep(1)#延時1秒再爬,防止把網站爬崩
        file_name = url.split('/')[-1]
        response = requests.get(url, headers=headers,timeout=10)
        with open(dir_name+'/'+file_name,'wb') as f:
            print(file_name)
            f.write(response.content)

#開始爬取
urls = re.findall('<a href="(.*?)" .*?>.*?</a>',html) #所有妹子的頁面

def mistaken():
    try:
        pass
    except:
        mistaken()

number_mei = 11 #爬取妹子數量,可以自己設置
cur_number = 0 #當前妹子數量
for url in urls:
    if(cur_number<=number_mei):
        try:
            cur_number += 1
            print('-------------第%d個妹子-------------' % cur_number)
            response = requests.get(url, headers=headers)
            html = response.text
            dir_one_meizi,urls_one_meizi = jiexi(html)
            saveImg(urls_one_meizi,dir_one_meizi)
        except:
            mistaken()
            cur_number-=1
    else:
        break

 

發佈了82 篇原創文章 · 獲贊 79 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章