目標抓取全站妹子封面圖片全部爬下來以圖片標題命名
-
分析網頁數據結構
妹子圖首頁 -
接下來找張圖片右擊點擊檢查
想要數據 - 拿到圖片鏈接直接用瀏覽器可以訪問,但是程序下載有反爬蟲,圖片直接下載不了需要加請求頭部信息
先上手代碼試試!
import requests
from lxml import etree
# 設計模式 --》面向對象編程
class Spider(object):
def __init__(self):
# 反反爬蟲措施,加請求頭部信息
self.headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
"Referer": "https://www.mzitu.com/xinggan/"
}
def start_request(self):
# 1. 獲取整體網頁的數據 requests
for i in range(1, 204):
print("==========正在抓取%s頁==========" % i)
response = requests.get("https://www.mzitu.com/page/"+ str(i) + "/", headers=self.headers)
html = etree.HTML(response.content.decode())
self.xpath_data(html)
def xpath_data(self, html):
# 2. 抽取想要的數據 標題 圖片 xpath
src_list = html.xpath('//ul[@id="pins"]/li/a/img/@data-original')
alt_list = html.xpath('//ul[@id="pins"]/li/a/img/@alt')
for src, alt in zip(src_list, alt_list):
file_name = alt + ".jpg"
response = requests.get(src, headers=self.headers)
print("正在抓取圖片:" + file_name)
# 3. 存儲數據 jpg with open
try:
with open(file_name, "wb") as f:
f.write(response.content)
except:
print("==========文件名有誤!==========")
spider = Spider()
spider.start_request()
哎!好像沒問題!
運行中
運行結果
同學們,都把褲子給我穿上!好好學習!
教程已出,但是可能有很多網友不會使用
大家有任何問題可以掃描二維碼關注公眾號,添加我的微信
我會第一時間為大家解答
搜索公眾號“一條正弦”或掃碼關注公眾號,第一時間獲取更多優質資源

