1. 程式人生 > >python爬蟲爬取各大平臺女主播圖片

python爬蟲爬取各大平臺女主播圖片

目標: 

各大直播平臺~~~(虎牙,熊貓,鬥魚,全民),內的女主播直播封面圖片.

所需掌握知識:

re正則表示式的,os模組,urllib模組

剛剛將這幾個平臺的顏值區域女主播都爬了一遍,整體來說步驟大致相同,我們這裡就拿”虎牙直播”來做個示範,看懂之後,可以先去嘗試爬取”鬥魚直播”鬥魚是這幾個當中最容易爬取的.程式碼如下:

import urllib.request

import re

import os

# 全域性變數用來記錄圖片的編號

gl_z = 0

def down_img(url1):

    """下載圖片"""

    # 處理圖片連結,拼接http:

    url = "https:" + re.sub(r"\?", "", url1)

    global gl_z

    print(url)

    # 請求連結

    response = urllib.request.urlopen(url)

    # 讀取內容

    data = response.read()

    # 切片取出圖片名稱

    file_name = url[url.rfind('/') + 1:]

    # 生成列表

    a = [x for x in range(10000)]

    # 開啟檔案用以寫入

    file = open(os.path.join("photo3", "img" + file_name + str(a[gl_z]) + ".jpg"), "wb")

    file.write(data)

    # 關閉檔案

    file.close()

    # 編號加1

    gl_z += 1

if __name__ == '__main__':

    # 要抓去資訊的網址

    home = """http://www.huya.com/g/xingxiu"""

    # 模擬請求頭

    headers = {

        "Host": "www.huya.com",

        "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36"

    }

    # 構造好請求物件 將請求提交到伺服器 獲取的響應就是到首頁的html程式碼

    request = urllib.request.Request(url=home, headers=headers)

    response = urllib.request.urlopen(request)

    # 讀取抓到的內容並解碼

    html_data = response.read().decode()

    """huyaimg.msstatic.com/avatar/1054/db/6590aa9bcf98e12e5d809d371e46cc_180_135.jpg

    """

    # 使用正則 從首頁中 提取出所有的圖片連結

    img_list = re.findall(r"//huyaimg\.msstatic\.com.+\.jpg\?", html_data)

    print(img_list)

    # 取出每張圖片進行下載

    for img_url in img_list:

        print(img_url)

        down_img(img_url)