背景:
最近部門領導交給筆者一個爬取百度關鍵詞排名的任務。寫好了基本功能,能不能正常使用呢?於是乎,有了本文,爬取一些美女圖片,一來可以檢驗下爬蟲效果;二來呢,也可以養養眼,給工作增加點樂趣不是,哈哈。廢話少說,這就是要抓取的圖片了,很養眼吧。直接上代碼 地址:http://www.win4000.com/meitu.html
環境:(請讀者自行配置)
Python3
urllib3
BeautifulSoup
requests
請讀者自行查看審查元素,以確定抓取目標,完全生搬硬套,可能出問題
源代碼:
download_meinv.py
import os
from urllib.parse import urlparse #應該是urllib3模塊帶來的,如果不是的話,之後在使用的過程在根據報錯信息進行解決吧
from bs4 import BeautifulSoup
import requests
'''導入模塊時先導入系統庫,在導入第三方庫'''
'''爬取美女網站首頁的所有照片'''
r = requests.get('http://www.win4000.com/meitu.html')
soup = BeautifulSoup(r.text,'html.parser')
img_list = []
for img in soup.select('img'):
if img.has_attr('alt'):
if img.has_attr('data-original'):
img_list.append((img.attrs['alt'],img.attrs['data-original']))
else:
img_list.append((img.attrs['alt'],img.attrs['src']))
image_dir = os.path.join(os.curdir,'meinv')
if not os.path.isdir(image_dir):
os.mkdir(image_dir)
for img in img_list:
name = img[0] + '.' + 'jpg'
o = urlparse(img[1])
filepath = os.path.join(image_dir,name)
url = '%s://%s/%s' % (o.scheme,o.netloc,o.path[1:].replace('_250_350','')) #下載原圖
print(url)
resp = requests.get(url)
with open(filepath,'wb') as f:
for chunk in resp.iter_content(1024): #如果圖片太大,以1024字節爲單位下載
f.write(chunk)