項(xiàng)目地址
如何可以上GitHub就可以進(jìn)去罢屈。
BDWP分享
1bq4MmIJNG4VEn8nnYsADYA?pwd=1732
接在后面鹅士,你懂的
使用方法
下載到本地路徑, 打開cmd到下載路徑腮恩, 然后輸入下面命令。
首先是通過 help 查看主要參數(shù)
>graber_cmd --help
Usage: graber_cmd [OPTIONS]
Options:
--level TEXT 過程中日志級(jí)別, 默認(rèn)是 INFO
--size TEXT 下載壁紙大小
--dir TEXT 下載后保存路徑
--proxy TEXT 使用的代理地址
--cur INTEGER 從第幾頁開始下載
--help Show this message and exit.
目前還不支持直接走系統(tǒng)的代理慨蓝, 如果需要翻墻才能下載剧防, 那么需要指定代理的使用京革。
否則會(huì)報(bào)錯(cuò):
>graber_cmd
ERROR:graber:不支持操作系統(tǒng)默認(rèn)代理,請(qǐng)通過 --proxy 你的代理地址 正確使用代理功能
在window10中奇唤,打開“代理”或者“更改代理設(shè)置” 設(shè)置頁面幸斥,就能看到【使用代理服務(wù)器】欄位, 下面有具體代理地址和端口咬扇。
proxy_example.png
然后將這個(gè)地址寫入代理參數(shù)--proxy即可甲葬。
比如:
>graber_cmd --proxy 127.0.0.1:63571
INFO:graber:使用代理127.0.0.1:63571
INFO:graber:即將開始下載,將保存到路徑:/temp
INFO:graber:嘗試下載第1張圖片: /w/33954/
技術(shù)要點(diǎn)
import imp
import requests,os,sys
from bs4 import BeautifulSoup
import logging
from typing import Tuple
from urllib3.exceptions import IncompleteRead,ProtocolError,MaxRetryError
from requests.exceptions import ChunkedEncodingError,SSLError
from ssl import SSLEOFError
方法主體
def main():
argv_size = len(sys.argv)
if argv_size >= 3:
size = sys.argv[1]
dir = sys.argv[2]
size_list = ['2560x1440', '1600x900', '2560x1600', '1920x1200', '1680x1050', '1440x900', '1280x800']
if size not in size_list:
log.error('指定的圖片大小不存在, 請(qǐng)總下列大小中選擇! \r\n {}'.format(str(size_list)))
elif not os.path.isdir(dir):
log.error('請(qǐng)輸入正確的保存路徑!')
else:
try:
response = requests.get('https://erowall.com/')
max_page = get_the_max_page_number(response.content)
if argv_size > 3:
cur_page = int(sys.argv[3])
for cur in range(cur_page, max_page):
cur_rsp = requests.get('https://erowall.com/dat/page/'+str(cur))
log.info("開始第{}頁下載".format(cur))
download_each_page(cur_rsp.content, size, dir)
else:
download_each_page(response.content, size, dir)
for cur in range(2, max_page):
log.info("開始第{}頁下載".format(cur))
cur_rsp = requests.get('https://erowall.com/dat/page/'+str(cur))
download_each_page(cur_rsp.content, size, dir)
except (IncompleteRead, ProtocolError, ChunkedEncodingError) as e:
log.error("請(qǐng)求異常結(jié)束!")
return
except (MaxRetryError, SSLError, SSLEOFError) as e:
log.error("不支持代理,請(qǐng)關(guān)閉代理后重試.")
return
else:
log.info("請(qǐng)指定圖片大小和保存路徑, 比如: graber 2560x1440 D:/temp")
使用方法:
1、下載打包好的:graber.exe
2冗栗、執(zhí)行下面命令 graber 圖片大小 保存地址
graber 2560x1440 D:/temp