python 爬取图片(2)

本次对上一个程序优化了:

1)URLPOOL使用了queue模块的Queue,控制 池的大小为50,支持多线程,下载速度更快,线程同步问题也得到解决

2)使用了异常处理机制

3)代码可读性提高

4)线程并发行增加。这个爬虫中使用两类线程:@解析线程:对每个主题目的url 进行图片地址解析@下载线程:每张图片都使用一个下载线程。限制了解析线程个数为5


使用模块,全局变量


请求头造函数


geturl()


putpool()
parsepage()


download()


总结:

1)parsepage() 函数名不副实,只是提取了页面的的图片地址,大部分解析任务都式gerurl()解析的

2)geturl() 只是解析了图片标题,对图片张数没有解析,

3)致命,程序重复解析url,parsepage()解析图片地址的时候会反复发错get请求(一张图片一个),造成巨大巨大浪费。观察图片地址,它们是有规律的,也就是说图片地址集合是可以再本地产生的!!!(解决这个问题理论上提速30倍?)

你可能感兴趣的:(python 爬取图片(2))