近来无事,或许是独自无聊,便产生以下程序
我们的目的不是搞事,是合理利用资源
各位,虎躯重要,合理食用
环境:python 3.6
第三方库
requests BeautifulSoup4
推荐使用 Anaconda 集成包
以下是全部代码
#coding=utf-8
# 作者:听风
import requests
from bs4 import BeautifulSoup
def imgurl(url):
res = requests.get(url)
soup = BeautifulSoup(res.text, 'html.parser')
# 获取总页数
page = int(soup.select('.pagenavi span')[-2].text)
# 获取图片链接
a = soup.select('.main-image a')[0]
src = a.select('img')[0].get('src')
meiziid = src[-9:-6]
print('开始下载妹子:',format(meiziid))
for i in range(1, page+1):
i = '%02d' % i
img = src.replace('01.jpg', str(i)+'.jpg')
headers = {
'User-Agent':'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)',
'Referer':'http://www.mzitu.com'
}
#此请求头破解防盗链
response = requests.get(img,headers=headers)
f = open('E:\\download\\meizi\\'+meiziid+'%s.jpg' % i, 'wb')
f.write(response.content)
f.close()
print( '===> %s 完成 ' % (meiziid + i))
print('妹子 %s 下载好了,请享用!\n' % meiziid)
def imgpage(page=''):
res = requests.get('http://www.mzitu.com/page/' + page)
soup = BeautifulSoup(res.text, 'html.parser')
href = soup.select('#pins a')
# 链接去重
list = set([i.get('href') for i in href])
# 遍历下载
[imgurl(i) for i in list]
result = input('你要下载哪一页的妹子:')
imgpage(result)
# python version : 3.6
如果程序报错,请试图用浏览器访问对应的页码,确定能访问时再运行该程序
此程序为单线程,个人不建议用使用多线程,我们是为了学习,不是搞崩人家的服务器
多线程请参考 http://blog.csdn.net/baidu_35085676/article/details/68958267
更详细的教程,看上面的链接,如果有需要,我再写