python多线程爬取图片_python 多线程爬取网站图片(详解)

1网站整个图片的意思是,网站有用的图片,广告推荐位,等等除外

萌新上路,老司机请略过

第一步找出网站url分页的规律

选择自己要爬取的分类(如果要所有的图片可以不选,显示的就是所有的照片,具体怎么操作请根据实际情况进行改进)

QQ截图20190620144258.png

url地址的显示

QQ截图20190620144349.png

看分页的url规律

QQ截图20190620144417.png

url地址的显示

由此可知分页的参数就是 page/页数

第二步获取总页数和进行url请求

1判断页数的几种办法,1最直接的从浏览器上眼看 2先数一页完整的网页一共有多少套图片,假如有15套,如果有一页少于15套那它就是最后一页(不排除最后一页也是15张)3和第一种方法差不多区别在于是用程序来查看总页数的,4不管多少页写个http异常捕获,如果get请求返回的是404那就是已经爬完了 5页面捕获下一页,如果没有下一页就证明爬取完成(但是有些数据少的页面就没有下一页这个标签,这就尴尬了),这里以第三种方法为例

由图可知总页数

you

用程序捕捉页数

由上图可知翻页的布局在一个div里 正常情况下包括 上一页1 2 3 4 5 ... 101下一页 一共9个选择项那么倒数第二个就是总页数

通过xpath获取标签的规则

这里点击右键copy copy xpath

QQ截图20190620150800.png

然后用到一个谷歌插件 xpath

刚才

把刚才复制的xpath 粘贴进去

QQ截图20190620150845.png

可以看到获取的是总页数101 但是我们认为的是标签的倒数第二个才是总页数,所以我们获取的是一个列表而不是一个确定的值,因为翻页的便签的个数是会变的但是总页数一直都是最后一个*(这里以我测试的网站为例,,一切以实际情况为准)

获取翻页的列表

QQ截图20190620150859.png

调用查找总页数的方法返回第二个值就是总页数

QQ截图20190620152157.png

并做个判断如果页数大于总页数的时候跳出循环

页数判断完毕进行图片爬取

一个页面有20组图片 通过xpath获取这10组图片的链接并进行请求

QQ截图20190620152830.png

一共四步

1访问第一页抓取一共多少页,

QQ截图20190620183133.png

第二步抓取页面10组图详情页的连接

QQ截图20190620183139.png

第三 请求第一组图片的详情页获取多少张图片,

![QQ截图20190620183154.png](https

你可能感兴趣的:(python多线程爬取图片)