spider 11-min.png
  • Madman
  • ·

Python3爬虫系列11 (实战) - 爬取妹子图 第二弹

爬取 www.mzitu.com 全站图片,截至目前共4725个图集,14.5万多张美女图片,使用 asyncio 和 aiohttp 实现的异步版本只需要不到2小时就能爬取完成。按日期创建图集目录,保存更合理。控制台只显示下载的进度条,详细信息保存在日志文件中。支持异常处理,不会终止爬虫程序。失败的请求,下次再执行爬虫程序时会自动下载

spider 05-min.png
  • Madman
  • ·

Python3爬虫系列05 (实验) - 多线程并发下载

I/O密集型最适合使用多线程,当然包括网络I/O。我们要下载多张图片,每次去下载一张图片,就是发起一次HTTP请求(使用TCP协议),客户端首先通过socket.socket()创建一个套接字,然后调用connect()方法经过三次握手与服务端建立TCP连接,这个过程是阻塞的。建立连接后,客户端将请求(要访问图片资源)发送给服务端,然后服务端返回响应,客户端用recv()方法每次接收一定数量...

spider 03-min.jpg
  • Madman
  • ·

Python3爬虫系列03 (实验) - 同步阻塞下载

从这一篇开始,将介绍如何用Python3实现网络爬虫,多任务快速抓取你想要的数据。每一次HTTP请求--响应要经过TCP三次握手、客户端发送请求数据、服务端分多次返回响应数据,这个过程中,客户端的CPU在等待网络I/O时会阻塞。Python依序下载是一个主线程依次等待每个网络I/O完成,而多线程是多个线程并发(不是并行)等待多个网络I/O,当一个线程因为等待网络I/O而阻塞时,会自动切换到另...