python基础进阶之堆糖头像爬虫
生活随笔
收集整理的這篇文章主要介紹了
python基础进阶之堆糖头像爬虫
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本文的文字及圖片來源于網絡,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯系我們以作處理
想要學習Python?有問題得不到第一時間解決?來看看這里,滿足你的需求,資料都已經上傳至文件中,可以自行下載!還有海量最新2020python學習資料。
點擊查看
一、前言:
隨著QQ 微信的興起,越來越多的人為了展示個性都喜歡收藏好看的頭像但是面對海量的頭像圖片如果一個一個去下載的話那么會很麻煩 如何解決這個問題呢?
二、所用到得庫
# 自動創建頭像存儲文件夾 import os # 下載包 import urllib.request # 網絡請求包 import requests # 網頁選擇器 from bs4 import BeautifulSoup三、分享內容:
? requests爬蟲庫
? bs4網頁選擇器
? urllib下載器
四、爬蟲運行流程
1.模擬瀏覽器向服務器發送了一個http請求
2.當網站接收到請求后
3.返回數據給爬蟲
五、代碼流程:
1.創建存儲文件夾
2.模擬瀏覽器
3.requests get請求 拿到網站頁面數據
4.在頁面中篩選我們想要的數據
5.下載數據
1.創建存儲文件夾
# 1. if not os.path.exists('./古風頭像/'):os.mkdir('./古風頭像/')2.模擬瀏覽器
# 2. 在請求網站時 網站會校驗當前請求是否為瀏覽器請求 如果不是 可能會造成禁止訪問的問題 headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36' }3.requests get請求 拿到網站頁面數據
# 3. 請求函數 使用函數中的功能時 需要去調用函數 def get_images(url):images_html = requests.get(url, headers=headers).text# 我們想要的數據就在html代碼中 所以需要在html代碼中去篩選我們想要的數據'''需要兩個參數1.想要篩選的頁面變量: images_html2.html解析庫: html代碼和python沒有關系 所以python沒有辦法直接去控制html使用html解析庫將html代碼轉成python對象lxml:需要大家去下載 pip install lxml'''4.在頁面中篩選我們想要的數據
soup = BeautifulSoup(images_html, 'lxml')images_list = soup.find_all('div', class_='mbpho')for image in images_list:image_url = image.find('img')['src']image_id = image.find('img')['data-rootid']# print(image_url, image_id)# print(os.path.splitext(image_url)[-1])5.下載數據 在windows系統中 如果想要下載保存一個文件 需要有兩個東西
文件名稱 文件后綴名
'''在下載中一定需要寫上異常處理代碼因為在網絡請求中 可能因為網絡問題導致爬蟲代碼崩潰 比如 斷網'''try:urllib.request.urlretrieve(image_url, './古風頭像/' + image_id + os.path.splitext(image_url)[-1])print('下載成功:', image_id)except Exception as e:print(e)url = 'https://www.duitang.com/search/?kw=%E5%8F%A4%E9%A3%8E%E5%A4%B4%E5%83%8F&type=feed' # 調用函數 get_images(url)總結
以上是生活随笔為你收集整理的python基础进阶之堆糖头像爬虫的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Auto.JS 教程(1)
- 下一篇: JAVA动物园喂动物小实例