设为首页 加入收藏

TOP

python爬煎蛋妹子图--20多行代码搞定煎蛋妹子图库
2017-09-30 17:22:19 】 浏览:7487
Tags:python 妹子 --20 代码 搞定 图库

如果说一个人够无聊的话。。。

就会做一些十分美(wei)丽(suo)的事情啦哈哈哈。。。

好的,话不多说,进入正题。

 

正如标题所示,我们今天的目标很简单:

代码要少,妹子要好。

 

步骤如下:

1. 首先我们得确定需要用到的库:

就requests吧,我们首先尝试向煎蛋(http://jiandan.net/ooxx)发起get请求

(当然心里希望不需要加头部信息巴拉巴拉一堆东西。。。)

1 import request
2 url = 'http://jandan.net/ooxx'
3 r = request.get(url)
4 
5 print r.status_code,r.content

看见200我就很高兴,输出页面也很正常

没想到还一步到位了,不需要做任何多余工作

(内心表示疑惑,煎蛋没有防爬机制吗?给面子!)

 

2. 接下来就要分析html:

其实目的就是img嘛,我发现结构很简单,正则表达式这么写就行了:

1 pic_url = re.findall('<img src="//(.*?)" /></p>',r.content)

(可以print试试,发现并没有多余的图片)

 

3. 接下来就是分析页码:

我发现页码也没做什么特别的处理,完全是url提交页码信息

于是只要写一个循环满足这个url就行了:

1 for i in range(1,231):
2     url = 'http://jandan.net/ooxx/page-'+str(i)+'#comments'

(一共230页,应该是删过了。。。)

 

4. 接着就把抓图片url做一个函数,然后进行多线程处理即可:

  完整代码:

 1 #coding=utf-8
 2 import requests
 3 import re
 4 import thread
 5 import time
 6 
 7 def get_pic_url(url):
 8     r = requests.get(url)
 9 
10     pic_url = re.findall('<img src="//(.*?)" /></p>',r.content)
11 
12     for i in pic_url:
13         print i
14 
15 
16 def main():
17 
18     for i in range(1,231):
19 
20         url = 'http://jandan.net/ooxx/page-'+str(i)+'#comments'
21         thread.start_new_thread(get_pic_url,(url,))
22         time.sleep(0.1)
23         #一定要加上time.sleep()不然不能成功运行!!!!!!    
24 
25 if __name__ == '__main__':
26     main()

在thread处理多线程的时候,循环内一定要加上time.sleep(),不然会很惨,比如停止工作巴拉巴拉。。。

 

好啦,这样我们就轻松获得所有妹子图片url,一共五千张不到,咱就不再urllib下载了,估计也有个几个g

 

能这么少代码解决也是拖了煎蛋良好的给你爬机制的福,爽!20行代码!

 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Python基础学习 -- 列表与元组 下一篇Python编程----变量和简单数据类型

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目