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

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

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

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

代码要少,妹子要好。

步骤如下:

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

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

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

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

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

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

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

2. 接下来就要分析html:

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

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

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

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

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

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

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

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

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

  完整代码:

 #coding=utf-
import requests
import re
import thread
import time def get_pic_url(url):
r = requests.get(url) pic_url = re.findall('<img src="//(.*?)" /></p>',r.content) for i in pic_url:
print i def main(): for i in range(,): url = 'http://jandan.net/ooxx/page-'+str(i)+'#comments'
thread.start_new_thread(get_pic_url,(url,))
time.sleep(0.1)
#一定要加上time.sleep()不然不能成功运行!!!!!! if __name__ == '__main__':
main()

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

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

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

最新文章

  1. autoit小贴士
  2. c#邮件发送的实现
  3. Paths(转载)
  4. css3实现手机效果的“切换标签”
  5. linux下网络程序遭遇SIGPIPE的解决(转)
  6. Struts中的 saveToken的方法
  7. 在Azure Cloud Service中部署Java Web App(1)
  8. jmeter-命令行执行脚本
  9. SpringMVC注解@Component、@Repository、@Service、@Controller区别
  10. MariaDB主从复制的逻辑与实现
  11. pl/sql学习(4): 包package
  12. PhpStorm连接Docker容器配置xdebug断点调试
  13. mysql服务里面没有启动项
  14. Linux学习之常用压缩命令(三)
  15. JavaScript -基础- 函数与对象(二)String
  16. 火狐Firefox浏览器所有历史版本下载地址
  17. linux下安装以及升级npm,node的方法
  18. Element ui 使用 Tree 树形控件
  19. Notepad++ 主题配色配置
  20. mysql互为主从

热门文章

  1. js实现htmlToWordDemo
  2. thinkphp5.0学习笔记(三)获取信息,变量,绑定参数
  3. JAVA项目省市县加载兼容浏览器异常
  4. python爬虫从入门到放弃前奏之学习方法
  5. 再谈AbstractQueuedSynchronizer:基于AbstractQueuedSynchronizer的并发类实现
  6. android权限(permission)大全
  7. ReactiveCocoa源码解析(五) SignalProtocol的observe()、Map、Filter延展实现
  8. 怎样禁止手机app 中页面有时候会把数字当做电话号码,从而自动进行打电话功能
  9. JavaWeb 后端 &lt;一&gt; 之 Tomcat服务器 - Http协议 学习笔记
  10. 小解系列-解决WebUploader在谷歌浏览器下弹出框打开慢,在Bootstrap模态框内部多次点击才能触发的问题