本次对上一个程序优化了:
1)URLPOOL使用了queue模块的Queue,控制 池的大小为50,支持多线程,下载速度更快,线程同步问题也得到解决
2)使用了异常处理机制
3)代码可读性提高
4)线程并发行增加。这个爬虫中使用两类线程:@解析线程:对每个主题目的url 进行图片地址解析@下载线程:每张图片都使用一个下载线程。限制了解析线程个数为5
使用模块,全局变量 请求头造函数 geturl() putpool() parsepage() download()总结:
1)parsepage() 函数名不副实,只是提取了页面的的图片地址,大部分解析任务都式gerurl()解析的
2)geturl() 只是解析了图片标题,对图片张数没有解析,
3)致命,程序重复解析url,parsepage()解析图片地址的时候会反复发错get请求(一张图片一个),造成巨大巨大浪费。观察图片地址,它们是有规律的,也就是说图片地址集合是可以再本地产生的!!!(解决这个问题理论上提速30倍?)
网友评论