#目前学的爬虫还有潭州教育的直播课,都是千篇一律的requests urllib 下面这个也是,还没有我后面的下载网易云歌单爽来都用到多线程了不过可以用协程,完全异步
1 #!/usr/bin/env/python
#-*-coding:utf-8-*- '''
2018-5-9 20:16:57
下次查明原因
不会知道为什么报错
2018-5-10 19:32:39开始重新看视频
把那个代码删了重新编码一下
一切运行成功
代码没错应该是网站封我ip了 还是很不错的
py爬虫还是很强大的
2018-5-10 21:12:37
'''
import requests #这个是访问http协议的模块
from urllib.request import urlopen,urlretrieve,urljoin,Request
import time #尽量来点休眠
import re url = 'http://www.mm131.com/xinggan/' def get_img(url,path,ref):
#url: jpg地址图像真正的地址
#path: 图像下载之后保存的路径
#ref: 图像的ref值
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1',
'Referer':ref
}
req = Request(url=url,headers=headers)
res = urlopen(req).read()
with open(path,'wb') as fp:
fp.write(res) def download(home_url):
#一级列表页面
html = requests.get(home_url).content.decode('gbk')
urls = re.findall('list_6_[0-9]+.html',html) #相对路径
urls = [urljoin(home_url,url) for url in urls] # 二级列表页
#http://www.mm131.com/qingchun/3982.html
urls_2 =[]
for url in set(urls):#从一级列表页下面去出来每一个链接
html = requests.get(url).content.decode('gbk')
for i in re.findall('http://www.mm131.com/xinggan/[0-9]+.html',html):
urls_2.append(i)
print(urls_2)
# 三级列表页
#3961_3.html
urls_3 = []
for url in set(urls_2):
html = requests.get(url).content.decode('gbk')
for i in re.findall('[0-9_]+.html',html):
urls_3.append(i) pic_url = {}#key值唯一.不需要额外去重
# 字典中:
# key: 图像地址
# value: Referer值
# ..jpg:...3333_1.html
# 从这个一个个的图片展示页面下提取真正的图片地址.jpg
for url in set(urls_3):
# http://img1.mm131.me/pic/3961/2.jpg
# http://img1.mm131.me/pic/3961/3.jpg
# http://img1.mm131.me/pic/[0-9]+/[0-9]+.jpg
html = requests.get(url).content.decode('gbk')
try:
i = re.findall('http://img1.mm131.me/pic/[0-9]+/[0-9]+.jpg', html)[0]
except:
print("[Error] 无效的链接:", url)
else:
pic_url[i] = url
# 从展示页面下,右键是可以看到的
# 但是直接通过url链接去访问就是不行的
# 防盗链
index = 0
for url in pic_url:
# key: 下载地址
# value: ref值
print('[+] 当前下载%d张:%s' % (index, url))
get_img(url=url, path=str(index) + '.jpg', ref=pic_url[url])
index += 1 download(url)

day_5.10py 爬妹子图片 mm131的更多相关文章

  1. Python练习册 第 0013 题: 用 Python 写一个爬图片的程序,爬 这个链接里的日本妹子图片 :-),(http://tieba.baidu.com/p/2166231880)

    这道题是一道爬虫练习题,需要爬链接http://tieba.baidu.com/p/2166231880里的所有妹子图片,点进链接看一下,这位妹子是日本著名性感女演员--杉本由美,^_^好漂亮啊,赶紧 ...

  2. 用python爬取全网妹子图片【附源码笔记】

    这是晚上没事无聊写的python爬虫小程序,专门爬取妹子图的,养眼用的,嘻嘻!身为程序狗只会这个了! 废话不多说,代码附上,仅供参考学习! """ 功能:爬取妹子图全网妹 ...

  3. Python爬虫-萌妹子图片

    最近发现一个可以看图的地方,一张张翻有点累,毕竟只有一只手(难道鼠标还能两只手翻?).能不能下到电脑上看呢,毕竟不用等网速,还可以预览多张,总之很方便,想怎么就怎么,是吧? 刚好这几天在学python ...

  4. Python3+selenium+BaiduAI识别并下载花瓣网高颜值妹子图片

    一.说明 1.1 背景说明 上周在“Python3使用百度人脸识别接口识别高颜值妹子图片”中自己说到在成功判断颜值后,下截图片并不是什么难点. 直观感觉上确实如此,你判断的这个url适不适合下载,适合 ...

  5. Python3+BaiduAI识别高颜值妹子图片

    一.在百度云平台创建应用 为什么要到百度云平台创建应用,首先来说是为了获取获取access_token时需要的API Key和Secret Key 至于为什么需要API Key和Secret Key才 ...

  6. 爬取mzi.com妹子图片网站(requests库)

    看了崔大佬的文章,写了这个爬虫,学习了!原文地址 现在该网站加了反爬机制,不过在headers里加上refere参数就行了. 以下代码仅做学习记录之用: from bs4 import Beautif ...

  7. Python爬取全站妹子图片,差点硬盘走火了!

    在这严寒的冬日,为了点燃我们的热情,今天小编可是给大家带来了偷偷收藏了很久的好东西.大家要注意点哈,我第一次使用的时候,大意导致差点坏了大事哈! 1.所需库安装 2.网站分析 首先打开妹子图的官网(m ...

  8. python爬虫–爬取煎蛋网妹子图片

    前几天刚学了python网络编程,书里没什么实践项目,只好到网上找点东西做. 一直对爬虫很好奇,所以不妨从爬虫先入手吧. Python版本:3.6 这是我看的教程:Python - Jack -Cui ...

  9. scrapy框架爬取妹子图片

    首先,建立一个项目#可在github账户下载完整代码:https://github.com/connordb/scrapy-jiandan2 scrapy startproject jiandan2 ...

随机推荐

  1. 理解 .NET 2015

    去年跟着BUILD之后,我发了一篇文章Exciting Times for .NET 并从那以后我已经很荣幸地能够与.NET团队并肩作战,这其中包括了运行时.框架.语言和编译器.虽然去年我的重心已经更 ...

  2. Apache Kafka学习 (二) - 多代理(broker)集群

    1. 配置server.properties > cp config/server.properties config/server-1.properties> cp config/ser ...

  3. 微软BI 之SSIS 系列 - 两种将 SQL Server 数据库数据输出成 XML 文件的方法

    开篇介绍 在 SSIS 中并没有直接提供从数据源到 XML 的转换输出,Destination 的输出对象有 Excel File, Flat File, Database 等,但是并没有直接提供 X ...

  4. Windows下Kettle定时任务执行并发送错误信息邮件

    Windows下Kettle定时任务执行并发送错误信息邮件 1.首先安装JDK 2.配置JDK环境 3.下载并解压PDI(kettle) 目前我用的是版本V7的,可以直接百度搜索下载社区版,企业版收费 ...

  5. MySql之存储过程的使用

    一:创建存储过程 1:简单存储过程 CREATE PROCEDURE 存储过程名() BEGIN SQL操作 END; 2:使用参数的存储过程 CREATE PROCEDURE 存储过程名(IN in ...

  6. Shell脚本高级编程笔记一

     http://www.cnblogs.com/ygj0930/p/8184277.html 一:函数 1:创建函数 法一: function name{ commands } 法二: name() ...

  7. OpenWrt 18.06.1的ss-redir, 以及在乐视超4 X40上看Youtube

    在18.06里面要设个透明代理, 就一直不成功 各种TIME OUT, PRIVATE SSL ERROR, 换回旧版的luci-app-shadowsocks也不行. 我就一直想, 到底这东西还能有 ...

  8. 【SqlServer】SqlServer的异常处理

    在SQLserver数据库中,如果有很多存储过程的时候,我们会使用动态SQL进行存储过程调用存储过程,这时候,很可能在某个环节就出错了,但是出错了我们很难去跟踪到出错的存储过程,此时我们就可以使用异常 ...

  9. 在Android上启用Kiosk模式

    我们的云帆机器人(上面运行的安卓程序)有一个线下场景是商场,由于商场人多,总会遇到一些用户在我们的app里乱点,然后会跳出程序进入到系统设置的一些界面,这样很不友好. 比如程序中有一些需要输入文字的地 ...

  10. CPP Note

    hello.cpp -> 编译代码g++ hello.cpp -o a -> a.out 区分大小写的编程语言 内置类型 一些基本类型可以使用一个或多个类型修饰符进行修饰: signed: ...