# 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. ASP.NET MVC中使用事务写法

    一些项目中,会涉及到事务的写法,比如订单相关,订单成功,会涉及到产品的库存和账户金额的一些信息变动,当然,如果整个流程成功,那是没什么问题,关键是如果中间某一步骤出现bug了,那之前已执行的一些变动就 ...

  2. Qt隐藏标题栏

    setWindowFlags (Qt::CustomizeWindowHint)setWindowFlags (Qt::FramelessWindowHint)两个函数都可以去掉标题栏,区别是第一个可 ...

  3. BF算法

    BF算法是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串P的第一个字符进行匹配,若相等,则继续比较S的第二个字符和P的第二个字符:若不相等,则比较S的第二个字符和P的第一个字符, ...

  4. 四则运算2+psp0级表格

    四则运算2 一.题目和要求 题目:写一个能自动生成小学四则运算题目的程序,要求一次输出不少于30道,只能是整数100以内的四则运算(四则运算1升级版) 要求: 1.题目避免重复 2.可定制(数量/打印 ...

  5. 初学MFC

    学习使用MFC搭建界面.尝试使用MFC搭建了一个简单的基于对话框的计算器界面,包括模态对话框.非模态对话框.向导对话框等. // MFCApplicationAddDlg.h : 头文件 // #pr ...

  6. Object常用方法

    1.clone() 创建并返回对象的一个副本,要进行“克隆”的对象所属的类必须实现java.lang.Cloneable接口 2.equals() 功能:比较引用数据类型的等价性 等价标准:引用类型比 ...

  7. Mac下的常用Shell命令

    今天介绍一下在Mac的终端中一些常用的Shell命令: 1.查看当前工作目录的完整路径 pwd (pwd的原意是:print work directiory,而不是密码password的意思,呵呵) ...

  8. 本人在安装ADT Bundle for windows的各种问题总结

    本人在安装ADT Bundle for windows的各种问题总结 1.解决国内访问Google服务器的困难: 1.启动 Android SDK Manager : 2.打开主界面,依次选择「Too ...

  9. yum rpm 命令 linux

    centos的软件安装大致可以分为两种类型: [centos]rpm文件安装,使用rpm指令  类似[ubuntu]deb文件安装,使用dpkg指令 [centos]yum安装   类似[ubuntu ...

  10. win7修改hosts文件方法

    因权限的关系,导致无法修改,解决如下: hosts属性 --> 安全 --> 编辑权限 --> 完全控制,就可以修改该文件了.win7默认不能修改hosts文件.