文章目錄
- 一、前言
- 二、網頁分析
- 三、爬蟲基本思路
- 1. 獲取5頁的套圖的URL
- 2. 進入套圖詳情頁爬取圖片
- 3. 完整實作如下
- 四、其他說明
一、前言
疲憊的生活里總要有些溫柔夢想吧

目標URL:http://www.win4000.com/meinvtag4_1.html
爬取美桌網某個標簽下的美女壁紙,點進詳情頁可以發現,里面是一組套圖
二、網頁分析

翻頁查看 URL 變化規律:
http://www.win4000.com/meinvtag4_1.html
http://www.win4000.com/meinvtag4_2.html
http://www.win4000.com/meinvtag4_3.html
http://www.win4000.com/meinvtag4_4.html
http://www.win4000.com/meinvtag4_5.html
頁面里看到的每張圖片點擊進去有詳情頁,里面是套圖


詳情頁里套圖URL變化規律:
http://www.win4000.com/meinv216987_1.html
http://www.win4000.com/meinv216987_2.html
http://www.win4000.com/meinv216987_3.html

在網頁源代碼中也可以直接找到資料:

圖片名稱 下載鏈接
性感美女肌膚雪白撩人寫真圖片
http://pic1.win4000.com/pic/8/e0/24b989d57c.jpg
三、爬蟲基本思路

1. 獲取5頁的套圖的URL
def get_taotu_url():
for i in range(1, 6):
url = f'http://www.win4000.com/meinvtag4_{i}.html'
headers = {
'User-Agent': choice(user_agent)
}
# 發送請求 獲取回應
rep = requests.get(url, headers=headers)
# print(rep.status_code) 狀態碼 200
# print(rep.text)
html = etree.HTML(rep.text)
taotu_url = html.xpath('//div[@class="tab_tj"]/div/div/ul/li/a/@href')
# 過濾掉無效的url
taotu_url = [item for item in taotu_url if len(item) == 39]
# 一個頁面有24個圖片
print(taotu_url, len(taotu_url), sep='\n')

2. 進入套圖詳情頁爬取圖片
def get_img(url):
headers = {
'User-Agent': choice(user_agent)
}
# 發送請求 獲取回應
rep = requests.get(url, headers=headers)
# 決議回應
html = etree.HTML(rep.text)
# 獲取套圖名稱 最大頁數
name = html.xpath('//div[@class="ptitle"]/h1/text()')[0]
os.mkdir(r'./女神套圖/{}'.format(name))
max_page = html.xpath('//div[@class="ptitle"]/em/text()')
# 字串替換 便于之后構造url請求
url1 = url.replace('.html', '_{}.html')
for i in range(1, int(max_page[0]) + 1):
url2 = url1.format(i)
sleep(randint(1, 3))
reps = requests.get(url2, headers=headers)
dom = etree.HTML(reps.text)
src = dom.xpath('//div[@class="main-wrap"]/div[1]/a/img/@data-original')[0]
file_name = name + f'第{i}張.jpg"/>
程式運行一會,圖片就全部爬取下來保存在本地檔案夾,5頁的120組套圖,美滋滋,

四、其他說明
- 不建議抓取太多資料,容易對服務器造成負載,淺嘗輒止即可,
- 通過本文爬蟲,可以幫助你了解套圖的爬取,如何通過字串的拼接來構造URL請求,
- 本文利用 Python 爬蟲實作批量下載女神套圖,實作程序中也會遇到一些問題,多思考和除錯,最終解決問題,也能理解得更深刻,
- 代碼可直接復制運行,如果覺得還不錯,記得給個贊哦,也是對作者最大的鼓勵,不足之處可以在評論區多多指正,

作者:葉庭云
CSDN:https://blog.csdn.net/fyfugoyfa
本文僅用于交流學習,未經作者允許,禁止轉載,更勿做其他用途,違者必究,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/210709.html
標籤:其他
