day_5.10py 爬妹子图片 mm131
#目前学的爬虫还有潭州教育的直播课,都是千篇一律的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的更多相关文章
- Python练习册 第 0013 题: 用 Python 写一个爬图片的程序,爬 这个链接里的日本妹子图片 :-),(http://tieba.baidu.com/p/2166231880)
这道题是一道爬虫练习题,需要爬链接http://tieba.baidu.com/p/2166231880里的所有妹子图片,点进链接看一下,这位妹子是日本著名性感女演员--杉本由美,^_^好漂亮啊,赶紧 ...
- 用python爬取全网妹子图片【附源码笔记】
这是晚上没事无聊写的python爬虫小程序,专门爬取妹子图的,养眼用的,嘻嘻!身为程序狗只会这个了! 废话不多说,代码附上,仅供参考学习! """ 功能:爬取妹子图全网妹 ...
- Python爬虫-萌妹子图片
最近发现一个可以看图的地方,一张张翻有点累,毕竟只有一只手(难道鼠标还能两只手翻?).能不能下到电脑上看呢,毕竟不用等网速,还可以预览多张,总之很方便,想怎么就怎么,是吧? 刚好这几天在学python ...
- Python3+selenium+BaiduAI识别并下载花瓣网高颜值妹子图片
一.说明 1.1 背景说明 上周在“Python3使用百度人脸识别接口识别高颜值妹子图片”中自己说到在成功判断颜值后,下截图片并不是什么难点. 直观感觉上确实如此,你判断的这个url适不适合下载,适合 ...
- Python3+BaiduAI识别高颜值妹子图片
一.在百度云平台创建应用 为什么要到百度云平台创建应用,首先来说是为了获取获取access_token时需要的API Key和Secret Key 至于为什么需要API Key和Secret Key才 ...
- 爬取mzi.com妹子图片网站(requests库)
看了崔大佬的文章,写了这个爬虫,学习了!原文地址 现在该网站加了反爬机制,不过在headers里加上refere参数就行了. 以下代码仅做学习记录之用: from bs4 import Beautif ...
- Python爬取全站妹子图片,差点硬盘走火了!
在这严寒的冬日,为了点燃我们的热情,今天小编可是给大家带来了偷偷收藏了很久的好东西.大家要注意点哈,我第一次使用的时候,大意导致差点坏了大事哈! 1.所需库安装 2.网站分析 首先打开妹子图的官网(m ...
- python爬虫–爬取煎蛋网妹子图片
前几天刚学了python网络编程,书里没什么实践项目,只好到网上找点东西做. 一直对爬虫很好奇,所以不妨从爬虫先入手吧. Python版本:3.6 这是我看的教程:Python - Jack -Cui ...
- scrapy框架爬取妹子图片
首先,建立一个项目#可在github账户下载完整代码:https://github.com/connordb/scrapy-jiandan2 scrapy startproject jiandan2 ...
随机推荐
- ThreadLocal 简介 案例 源码分析 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- ASP.NET CORE 之 在IIS上部署MVC项目
与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是使用自托管Web服务器(Kestrel)运行,IIS则是作为反向代理的角色转发请求到Kestrel ...
- 【阿里巴巴Java开发手册——集合处理】13.集合的稳定性(order)和有序性(sort)
有序性(sort):指遍历的结果是按照某种比较规则依次排列的. 稳定性(order):指集合每次遍历的元素的次序是一定的. 如:ArrayList是order/unsort HashMap是unord ...
- java webdriver的api的封装
我们来看一下官网提供的代码写法,即最原始的写法: driver.findElement(By.id("kw")).click() 这样写是没任何问题的,但这样没有把元素对象,数据, ...
- PyCharm for Mac(Python 开发工具)破解版安装
1.软件简介 PyCharm 是 macOS 系统上一款 Python 编辑利器,具有智能代码编辑器,能理解 Python 的特性并提供卓越的生产力推进工具:自动代码格式化.代码完成.重构.自动 ...
- [Aaronyang紫色博客] 写给自己的WPF4.5-Blend5公开课系列 1
我的文章一定要做到对读者负责,否则就是失败的文章 --------- www.ayjs.net aaronyang技术分享 欢迎大家支持我的力作<[Aaronyang] 写给自己的 ...
- 搞定所有的跨域请求问题 jsonp CORS
网上各种跨域教程,各种实践,各种问答,除了简单的 jsonp 以外,很多说 CORS 的都是行不通的,老是缺那么一两个关键的配置.本文只想解决问题,所有的代码经过亲自实践. 本文解决跨域中的 ge ...
- js的new Date()日期的使用
<script type="text/javascript"> //js获取某个月的天数 function days(year,month){ var dayCount ...
- ThinkPad T420 Fn+F5
关于F5,可做如下设置: 1)官网win7系统下载SIhotkey[8jvu39ww].exe:最新版本的我没测试,应该也可以用. 2)双击安装,并按程序安装,直到要你选择安装on s ...
- 【GMT43智能液晶模块】例程五:IWDG看门狗实验——复位ARM
实验原理: STM32内部包含独立看门狗,通过看门狗可以监控程序运行,程序运行 错误时,未在规定时间喂狗,自动复位ARM.本实验通过UI界面中按钮按下 停止喂狗,制造程序运行错误,从而产生复位. 示例 ...