# python3
# jiandan meizi tu
import urllib
import urllib.request as req
import os
import time
import random def url_open(url):
req1 = urllib.request.Request(url, headers={'User-Agent': 'Mozilla/4.0'})
req2 = urllib.request.Request(url, headers={'User-Agent': 'Mozilla/4.1'})
req3 = urllib.request.Request(url, headers={'User-Agent': 'Mozilla/4.5'})
req4 = urllib.request.Request(url, headers={'User-Agent': 'Mozilla/5.1'}) req_list = [req1, req2,req3, req4]
response = urllib.request.urlopen(random.choice(req_list))
html = response.read()
# print ('url_open done!')
return html def url_open2(url):
req1 = urllib.request.Request(url, headers={'User-Agent': 'Mozilla/4.0'})
req2 = urllib.request.Request(url, headers={'User-Agent': 'Mozilla/4.1'})
req3 = urllib.request.Request(url, headers={'User-Agent': 'Mozilla/4.5'})
req4 = urllib.request.Request(url, headers={'User-Agent': 'Mozilla/5.1'})
req_list = [req1, req2,req3, req4] ip_list = ['117.135.251.136:82']
ip = random.choice(ip_list)
print (ip) proxy = req.ProxyHandler({'http': ip})
# auth = req.HTTPBasicAuthHandler()
opener = req.build_opener(proxy, req.HTTPHandler)
req.install_opener(opener)
conn = req.urlopen(random.choice(req_list))
return_str = conn.read()
return return_str def get_current_page(url):
html = url_open2(url).decode('utf-8')
a = html.find('current-comment-page') + 23
b = html.find(']',a)
return html[a:b] def find_imgs(url):
html = url_open2(url).decode('utf-8')
img_addrs = []
a = html.find('img src="http')
while a != -1:
b = html.find('.jpg',a, a+255)
if b != -1:
img_addrs.append(html[a+9:b+4])
else:
b = a + 13
a = html.find('img src="http', b)
return img_addrs def save_imgs(folder,img_addrs):
for each in img_addrs:
filename = each.split('/')[-1]
with open(filename,'wb') as f:
img = url_open2(each)
f.write(img) def download_mm(folder = 'xx',pages = 300):
# os.mkdir(folder)
os.chdir(folder) url = 'http://jandan.net/ooxx/'
current_page_num = int(get_current_page(url))
for i in range(pages):
print (time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()),'current_page_num', current_page_num)
if i%3 == 0:
print (time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()),"sleep 2 seconds...")
time.sleep(2)
current_page_num -= 1
page_url = url + 'page-' + str(current_page_num) + '#comments'
img_addrs = find_imgs(page_url)
save_imgs(folder, img_addrs) if __name__ == '__main__':
download_mm()

python爬煎蛋妹子图的更多相关文章

  1. [Java]使用HttpClient实现一个简单爬虫,抓取煎蛋妹子图

    第一篇文章,就从一个简单爬虫开始吧. 这只虫子的功能很简单,抓取到”煎蛋网xxoo”网页(http://jandan.net/ooxx/page-1537),解析出其中的妹子图,保存至本地. 先放结果 ...

  2. 手把手教你用Python爬虫煎蛋妹纸海量图片

    我们的目标是用爬虫来干一件略污事情 最近听说煎蛋上有好多可爱的妹子,而且爬虫从妹子图抓起练手最好,毕竟动力大嘛.而且现在网络上的妹子很黄很暴力,一下接受太多容易营养不量,但是本着有人身体就比较好的套路 ...

  3. python爬煎蛋妹子图--20多行代码搞定煎蛋妹子图库

    如果说一个人够无聊的话... 就会做一些十分美(wei)丽(suo)的事情啦哈哈哈... 好的,话不多说,进入正题. 正如标题所示,我们今天的目标很简单: 代码要少,妹子要好. 步骤如下: 1. 首先 ...

  4. 「玩转Python」突破封锁继续爬取百万妹子图

    前言 从零学 Python 案例,自从提交第一个妹子图版本引来了不少小伙伴的兴趣.最近,很多小伙伴发来私信说,妹子图不能爬了!? 趁着周末试了一把,果然爬不动了,爬下来的都是些 0kb 的假图片,然后 ...

  5. [Python爬虫]煎蛋网OOXX妹子图爬虫(1)——解密图片地址

    之前在鱼C论坛的时候,看到很多人都在用Python写爬虫爬煎蛋网的妹子图,当时我也写过,爬了很多的妹子图片.后来煎蛋网把妹子图的网页改进了,对图片的地址进行了加密,所以论坛里面的人经常有人问怎么请求的 ...

  6. py3+urllib+bs4+反爬,20+行代码教你爬取豆瓣妹子图

    0.准备 所用到的模块: urllib.request,获取源码 beautifulsoup4(bs4),网页抓取数据   安装bs4,python3 -m pip install beautiful ...

  7. python爬虫之一---------豆瓣妹子图

    #-*- coding:utf-8 -*- __author__ = "carry" import urllib import urllib2 from bs4 import Be ...

  8. python 爬虫煎蛋网

    import urllib.request import os from urllib import error import re import base64 def url_open(url): ...

  9. python 爬取图片

    使用python的requests库爬取网页时,获取文本一般使用text方法,如果要获取图片并保存要用content 举个栗子,爬煎蛋网的图: #!/usr/bin/env python #-*- c ...

随机推荐

  1. 鲁棒性是 Robustness

    鲁棒性是 Robustness 的音译,是指当系统受到不正常干扰时,是否还能保证主体功能正常运作.可参考 维基百科:http://zh.wikipedia.org/zh/ 鲁棒性 _( 计算机科学 ) ...

  2. file_get_contents函数和curl函数不能用

    某天file_get_contents()突然不能用了,检查了下php配置文件 allow_url_fopen=on 没问题   各种重启也没用 最后在ssh下执行 chmod 755 /etc/re ...

  3. R语言 如何为图片添加文字说明(转载)

    转载:(中文翻译者)[http://blog.csdn.net/chen790646223/article/details/49766659] (原文链接)[http://datascienceplu ...

  4. Mono for Android (4)-- 图片转为二进制,二进制转回图片

    最近纠结蓝牙打印的问题,想着图片先转为二进制发给打印机,找了好多资料,终于成功了,贴出来共享一下 先是图片转换为二进制的: Bitmap bitmap = BitmapFactory.DecodeRe ...

  5. linux设置环境变量的方法

    0.查看环境变量 export 1.直接执行命令,不过只有此次会话有效 export PATH=$PATH:/dir/I/want 2.修改profile文件 在里面加入: export PATH=& ...

  6. Sprint计划会议1

    会议时间:4.15.晚9点 会议地点:学一食堂2楼 会议进程 • 首先我们讨论了实验第一个Sprint1要实现的功能(用户登录及信息录入).•  之后对任务进行了认领.•  最后每个人对自己的任务进行 ...

  7. java7新特新(一) Try-with-resources (TWR)

    Try-with-resources (TWR) 在处理IO的代码中,我们会使用大量的try...catch()...finally...语法,其中会在finally进行IO的close操作,写过py ...

  8. WPS for ubuntu14

    QGtkStyle could not resolve GTK. Make sure you have installed the proper libraries. sudo apt-get ins ...

  9. hdu 4685 二分匹配+强连通分量

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4685 题解: 这一题是poj 1904的加强版,poj 1904王子和公主的人数是一样多的,并且给出 ...

  10. boost之bind

    bind1st bind2nd在stl里面有具体的实现,只是只能绑定两个参数. boost里面的bind使用bind(Fun f,A1 a1,A2,a2...)产生一个对象,这个对象可以有占位符,可以 ...