有疑问可以回复我,共同交流学习。
#!/usr/bin/env python # -*- coding:utf-8 -*- #Author: ss from bs4 import BeautifulSoup import requests import time import random import os my_headers = [ "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/537.75.14", "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0)" ] headers = { \'User-Agent\':random.choice(my_headers) } def Downloads(url,abc,title1): data = requests.get(url,headers=headers) time.sleep(1) with open(\'.\\壁纸\\\' + title1 + \'\\\' + str(abc) + \'.jpg\',\'wb+\') as f: f.write(data.content) def get_image(url,abc,title1): #url = \'http://desk.zol.com.cn/showpic/1366x768_89338_102.html\' data = requests.get(url, headers=headers) soup = BeautifulSoup(data.text, \'lxml\') url = soup.select(\'img\')[0].get(\'src\') print(\'正在下载{}第{}张\'.format(title1, abc)) Downloads(url,abc,title1) def get_image_url(url,abc): #url = \'http://desk.zol.com.cn/bizhi/7254_89744_2.html\' data = requests.get(url,headers=headers) soup = BeautifulSoup(data.text,\'lxml\') time.sleep(2) url = \'http://desk.zol.com.cn\' + soup.select(\'dd#tagfbl > a#1366x768\')[0].get(\'href\') title1 = soup.select(\'a#titleName\')[0].text if not os.path.exists(\'.\\壁纸\\\' + title1): os.mkdir(\'.\\壁纸\\\' + title1) get_image(url,abc,title1) def get_one_urls(url): #url = \'http://desk.zol.com.cn/bizhi/7211_89338_2.html\' data = requests.get(url,headers=headers) soup = BeautifulSoup(data.text,\'lxml\') urlss = soup.select(\'div.photo-list-box > ul.clearfix\') title1 = soup.select(\'a#titleName\')[0].text print(\'正在下载{}\'.format(title1)) abc = 0 for urls in urlss: urls = urls.select(\'li > a\') for url in urls: try: url = \'http://desk.zol.com.cn\' + url.get(\'href\') time.sleep(1) abc += 1 get_image_url(url,abc) except: continue def get_urls(url): #url = \'http://desk.zol.com.cn/fengjing/1366x768/\' data = requests.get(url,headers=headers) soup = BeautifulSoup(data.text.encode(\'ISO-8859-1\').decode(\'GB18030\'),\'lxml\') urls = soup.select(\'li.photo-list-padding > a\') #titles = soup.select(\'li.photo-list-padding > a.pic > span > em\') #urls = soup.select(\'body > div.wrapper.top-main.clearfix > div.main > ul > li > a\')[0].get(\'href\') for url in urls: try: time.sleep(1) url = \'http://desk.zol.com.cn\' + url.get(\'href\') get_one_urls(url) except: continue def urls(): for i in range(10): try: url = \'http://desk.zol.com.cn/fengjing/1366x768/\' + str(i) + \'.html\' time.sleep(1) get_urls(url) except: continue urls()