国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python實現壁紙批量下載代碼實例

2020-02-22 22:59:34
字體:
來源:轉載
供稿:網友

項目地址:https://github.com/jrainlau/wallpaper-downloader

前言

好久沒有寫文章了,因為最近都在適應新的崗位,以及利用閑暇時間學習python。這篇文章是最近的一個python學習階段性總結,開發了一個爬蟲批量下載某壁紙網站的高清壁紙。

注意:本文所屬項目僅用于python學習,嚴禁作為其他用途使用!

初始化項目

項目使用了virtualenv來創建一個虛擬環境,避免污染全局。使用pip3直接下載即可:

pip3 install virtualenv

然后在合適的地方新建一個wallpaper-downloader目錄,使用virtualenv創建名為venv的虛擬環境:

virtualenv venv. venv/bin/activate

接下來創建依賴目錄:

echo bs4 lxml requests > requirements.txt

最后yun下載安裝依賴即可:

pip3 install -r requirements.txt

分析爬蟲工作步驟

為了簡單起見,我們直接進入分類為“aero”的壁紙列表頁:http://wallpaperswide.com/aer...。

可以看到,這一頁里面一共有10張可供下載的壁紙。但是由于這里顯示的都是縮略圖,作為壁紙來說清晰度是遠遠不夠的,所以我們需要進入壁紙詳情頁,去找到高清的下載鏈接。從第一張壁紙點進去,可以看到一個新的頁面:

因為我機器是Retina屏幕,所以我打算直接下載體積最大的那個以保證高清(紅圈所示體積)。

了解了具體的步驟以后,就是通過開發者工具找到對應的dom節點,提取相應的url即可,這個過程就不再展開了,讀者自行嘗試即可,下面進入編碼部分。

訪問頁面

新建一個download.py文件,然后引入兩個庫:

from bs4 import BeautifulSoupimport requests

接下來,編寫一個專門用于訪問url,然后返回頁面html的函數:

def visit_page(url): headers = {  'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36' } r = requests.get(url, headers = headers) r.encoding = 'utf-8' soup = BeautifulSoup(r.text, 'lxml') return soup

為了防止被網站反爬機制擊中,所以我們需要通過在header添加UA把爬蟲偽裝成正常的瀏覽器,然后指定utf-8編碼,最后返回字符串格式的html。

提取鏈接

在獲取了頁面的html以后,就需要提取這個頁面壁紙列表所對應的url了:

def get_paper_link(page): links = page.select('#content > div > ul > li > div > div a') collect = [] for link in links:  collect.append(link.get('href')) return collect            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 武清区| 临江市| 开阳县| 胶南市| 博爱县| 伊金霍洛旗| 武隆县| 保靖县| 阜新| 扶沟县| 南溪县| 聂荣县| 夏津县| 德清县| 太原市| 建宁县| 孟州市| 平舆县| 乐昌市| 德州市| 龙海市| 吉隆县| 云浮市| 武山县| 育儿| 沙坪坝区| 鄱阳县| 玉树县| 福清市| 通渭县| 诏安县| 衢州市| 岗巴县| 黄龙县| 乐都县| 防城港市| 嘉祥县| 武清区| 阆中市| 利辛县| 松潘县|