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)