1.环境:python3.6以及PyCharm
2.需要用到的库有requests ,urllib , bs4 ,os,threading
可以参照:Mac下PyCharm导入第三方包
Request:用来请求网络数据
Beautifulsoup4:用来解析html文档,过滤所需数据
urllib:用来操作网页url
threading:用来做多线程~
接下来进入正题:
1.首先获取所有要下载的网页的URL,怕太多,我这边只载1-10页
2.接着便是获取页面中的图片的url
使用lxml解析,寻找到所有的img,将所有图片地址遍历过去
其中有用到全局变量的,使用gLock.acquire()和gLock.release()加锁解锁下,避免多线程运行时冲突
url = img.get('data-original', 'http://ww3.sinaimg.cn/bmiddle/9150e4e5ly1fpzs6elzerg20470430w7.gif')这行,有些图片没有get到data-original的话,后面split去分割"/"会出错,所以就写了个固定的地址填充下
3.获取到每个图片的地址后,截取所有图片的名字,作为保存到本地的图片名字,保存在文件夹为images目录底下。
然后使用urlretrieve()方法将图片载下来
4.由于页面如果很多多话,一个一个跑太慢了,于是加了一个多线程
以上~~~一个简单的爬取网站图片的功能就完成啦!!
毕竟第一个PY实验~人生苦短,我用python