Python -- 网络编程 -- 抓取网页图片 -- 豆瓣妹子
首先分析页面URL,形如http://dbmeizi.com/category/[1-14]?p=[0-476]
图片种类对应编号:
1:'性感', 2:'有沟', 3:'美腿', 4:'小露点',
6:'所有男', 7:'肌肉男', 8:'清新男', 9:'有意思' ,
10:'所有', 11:'小清新', 12:'文艺', 13:'文艺男', 14:'美臀'
图片地址形如data-bigimg="http://pic.dbmeizi.com/pics/nn2nn2nn/p12378370.jpg"
-----源代码meizi.py-----
import re, os, time
import urllib.request
def getHtml(url):#取得网页的html纯文本
return urllib.request.urlopen(url).read().decode('utf-8')
def download(url, filename):#将文件下载到本地
urllib.request.urlretrieve(url, filename)
if __name__ == '__main__':
print('---豆瓣妹子抓图机---')
dic = {1:'性感', 2:'有沟', 3:'美腿', 4:'小露点',
6:'所有男', 7:'肌肉男', 8:'清新男', 9:'有意思' ,
10:'所有', 11:'小清新', 12:'文艺', 13:'文艺男', 14:'美臀'}
for i in dic.keys():
print('{:<15}'.format(str(i)+'--'+dic[i]), end='')
if i%4==0: print()
category = int(input('\n请输入抓取类别:'))
pageNo1 = int(input('请输入抓取页面起始编号(0-476):'))#2014.5.5正好476页
pageNo2 = int(input('请输入抓取页面终止编号(0-476):'))
for no in range(pageNo1, pageNo2+1):
url = 'http://dbmeizi.com/category/{}?p={}'.format(category, no)
html = getHtml(url)
reMeizi = r'(?<=bigimg=").+jpg'
pics = re.findall(reMeizi, html)
folder = 'D:/DBMeizi/{}/{}/'.format(dic[category], no)
if not os.path.exists(folder):
os.makedirs(folder)
logfile = open(folder+'log.txt', 'wt')
logfile.write('图片来源:'+ url +'\n图片链接:\n')
for pic in pics:
print('正在下载', pic)
try:
download(pic, folder+pic[-13:])
except:
print('下载出错')
logfile.write(pic + ' 下载出错!\n')
continue
logfile.write(pic+'\n')
logfile.close()
print('下载' + dic[category] +'['+ str(no) +']结束。')
time.sleep(1)
print('全部任务结束。')


Python -- 网络编程 -- 抓取网页图片 -- 豆瓣妹子的更多相关文章
- Python -- 网络编程 -- 抓取网页图片 -- 图虫网
字符串(str)编码成字节码(bytes),字节码解码为字符串 获取当前环境编码:sys.stdin.encoding url编码urllib.parse.quote() url解码urllib.pa ...
- Asp.net 使用正则和网络编程抓取网页数据(有用)
Asp.net 使用正则和网络编程抓取网页数据(有用) Asp.net 使用正则和网络编程抓取网页数据(有用) /// <summary> /// 抓取网页对应内容 /// </su ...
- python网络爬虫抓取网站图片
本文介绍两种爬取方式: 1.正则表达式 2.bs4解析Html 以下为正则表达式爬虫,面向对象封装后的代码如下: import urllib.request # 用于下载图片 import os im ...
- 如何利用Python网络爬虫抓取微信朋友圈的动态(上)
今天小编给大家分享一下如何利用Python网络爬虫抓取微信朋友圈的动态信息,实际上如果单独的去爬取朋友圈的话,难度会非常大,因为微信没有提供向网易云音乐这样的API接口,所以很容易找不到门.不过不要慌 ...
- 利用Python网络爬虫抓取微信好友的签名及其可视化展示
前几天给大家分享了如何利用Python词云和wordart可视化工具对朋友圈数据进行可视化,利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例,以及利用Python网络爬虫抓取微信好友的所 ...
- 如何利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例
前几天给大家分享了利用Python网络爬虫抓取微信朋友圈的动态(上)和利用Python网络爬虫爬取微信朋友圈动态——附代码(下),并且对抓取到的数据进行了Python词云和wordart可视化,感兴趣 ...
- Python3简单爬虫抓取网页图片
现在网上有很多python2写的爬虫抓取网页图片的实例,但不适用新手(新手都使用python3环境,不兼容python2), 所以我用Python3的语法写了一个简单抓取网页图片的实例,希望能够帮助到 ...
- 抓取网页图片的脚本(javascript)
抓取网页图片的脚本(javascript) 本文地址: http://blog.csdn.net/caroline_wendy/article/details/24172223 脚本内容 (没有换行) ...
- 利用Python网络爬虫抓取微信好友的所在省位和城市分布及其可视化
前几天给大家分享了如何利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例,感兴趣的小伙伴可以点击链接进行查看.今天小编给大家介绍如何利用Python网络爬虫抓取微信好友的省位和城市,并且将 ...
随机推荐
- 使用系统的CoreLocation定位
//// ViewController.m// LBS//// Created by tonnyhuang on 15/8/28.// Copyright (c) 2015年 tonnyhua ...
- TFlearn——(2)SVHN
1,数据集简介 SVHN(Street View House Number)Dateset 来源于谷歌街景门牌号码,原生的数据集1也就是官网的 Format 1 是一些原始的未经处理的彩色图片,如下图 ...
- Html隐藏占空间与隐藏不占空间
隐藏不占用空间: display:none; 以下为示例代码: <span style="display:none;"> 获取中</span> 隐藏占用空间 ...
- StructuredStream StateStore机制
ref: https://jaceklaskowski.gitbooks.io/spark-structured-streaming/ StruncturedStream的statefule实现基于S ...
- ASP.NET Core真实管道详解[1]
ASP.NET Core管道虽然在结构组成上显得非常简单,但是在具体实现上却涉及到太多的对象,所以我们在 <ASP.NET Core管道深度剖析[共4篇]> 中围绕着一个经过极度简化的模拟 ...
- 爬虫浅谈一:一个简单c#爬虫程序
这篇文章只是简单展示一个基于HTTP请求如何抓取数据的文章,如觉得简单的朋友,后续我们再慢慢深入研究探讨. 图1: 如图1,我们工作过程中,无论平台网站还是企业官网,总少不了新闻展示.如某天产品经理跟 ...
- Enum 绑定到 CheckBox
第一种方法: 后台: internal static class EnumCache<T> where T : struct, IConvertible { private static ...
- CentOS 7 - 最小化安装以及引发的问题!
一,操作系统和虚拟机 操作系统:CentOS 7 官方网站:https://www.centos.org 下载地址:https://www.centos.org/download/ 下载版本分三个:D ...
- poj1511
Invitation Cards Time Limit: 8000MS Memory Limit: 262144K Total Submissions: 25099 Accepted: 829 ...
- Ultra-QuickSort (POJ 2299)树状数组+离散化
题目链接 Description In this problem, you have to analyze a particular sorting algorithm. The algorithm ...