#目前学的爬虫还有潭州教育的直播课,都是千篇一律的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. jQuery()方法的第二个参数

    关于jQuery()方法的第二个参数,有下面这几种用法: 1.jQuery(selector, [context]) 这种用法,相当于 $(context).find(selector) 或者 con ...

  2. iOS 7设计备忘单

    With the release of iOS 7, app designers and developers will need to adjust their visual language to ...

  3. 如何查看Ubuntu下已安装包版本号

    之前的工作大部分在红帽企业版 下工作,查找安装包用rpm 很方便,但是由于这边大部分的服务器的运行环境是ubantu,补补. 在终端下也可以很方便查看已安装的软件包版本号,也能单独查看所需要的软件包是 ...

  4. Linux中搭建一个ftp服务器详解

    来源:Linux社区  作者:luzhi1024 详解Linux中搭建一个ftp服务器. ftp工作是会启动两个通道:控制通道 , 数据通道在ftp协议中,控制连接均是由客户端发起的,而数据连接有两种 ...

  5. goaccess生成nginx每日访问纪录

    使用php写的,方便点 <?php // 定义全局参数 $date = date("Ymd"); $day = date("d", strtotime(' ...

  6. Effective Java 第三版——5. 使用依赖注入取代硬连接资源

    Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...

  7. linux下zip包处理

    先来看例子: zip命令可以用来将文件压缩成为常用的zip格式.unzip命令则用来解压缩zip文件. 1. 我想把一个文件abc.txt和一个目录dir1压缩成为yasuo.zip: # zip - ...

  8. iOS应用开发,全局强制竖屏,部分页面允许旋转的处理

    目前大多数app都不支持横屏模式,用户不常用,开发起来也麻烦一些.但有些时候,又离不开横屏和竖屏的切换,比如查看视频.图片.文档等,这时又不得不对页面做横屏的处理.下面来教大家如何处理这种场景,方法可 ...

  9. PHP可变参数

    0x00 缘起 在laravel的源码里经常可以看到下面的函数形式 $func(...$args) 0x01 可变参数旧写法 这表示$func支持可变参数,在php5.6之前则是在函数体内调用 fun ...

  10. centos7安装elasticsearch-head

    elasticsearch-head安装前准备 1.操作系统64位CentOS Linux release 7.2.1511 (Core)2.git是必需的elasticsearch-head是一款开 ...