目标网址:https://pic.netbian.com/
4K壁纸:https://pic.netbian.com/e/search/result/?searchid=1224
找来练手,如有侵权,请联系删除!
参考博客链接:
https://blog.csdn.net/qq_43017750/article/details/96714797?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1.pc_relevant_default&utm_relevant_index=2
(一)获取目标位置
如何得到每张图片的具体位置呢?
首先找到在哪一个分页,打开页面,F12查看源码:
在代码上面停放,即可查看目标文件:
我们可以看到每个代码对应的文件:
点击4K图片:
第二页:
https://pic.netbian.com/e/search/result/index.php?page=1&searchid=1224
第三页:
https://pic.netbian.com/e/search/result/index.php?page=2&searchid=1224
第四页:
https://pic.netbian.com/e/search/result/index.php?page=3&searchid=1224
我们发现:就只有“page=1”后面跟的页数发生了变化
若要打开第n页:
https://pic.netbian.com/e/search/result/index.php?page=n-1&searchid=1224
我们尝试以下地址是否是第一页地址:
https://pic.netbian.com/e/search/result/index.php?page=0&searchid=1224
我们发现确实没有问题。
我们把打开主页面的url叫做主页面url。
现在点击图片,打开图片详情页。一般我们把图片详情页叫做子页面,子页面的url叫做子url。
演示使用的url是:https://pic.netbian.com/tupian/28839.html
我们看到了一个url:
/uploads/allimg/220206/225811-16441594914f70.jpg
发现这个url不是一个完整的url。证明还需要知道一个主url。
注意:这里说的是主url,不是打开主页面的主页面url。一般网站的主url,就是网站的网址。
比如说当前的这个网站的网址是:http://pic.netbian.com,那么这个主url就是:http://pic.netbian.com
我们把主url和图片的url拼接到一起得到一个完整的url。
http://pic.netbian.com/uploads/allimg/220206/225811-16441594914f70.jpg
在浏览器中验证该url:
证明url没问题。现在再去确认这个url是本来就存在于网页代码中,还是js加载出来的。
先返回子页面:
接着在按【ctrl】+【u】,打开网页的源代码:
这么多,一行一行的找肯定不现实,我们使用页面查找功能,按【ctrl】+【F】调出查找功能。
在输入框中输入我们之前提取出来的图片url:
/uploads/allimg/220206/225811-16441594914f70.jpg
按确认进行查找。
可以证明图片的url就是存在于网页代码中的。
(二)编写代码:
爬虫实际上就是我们写代码,模拟浏览器的行为,我们写的应用程序,被看作一个浏览器,它就像是一个不需要会员的浏览器。
(1)要用到的库:
1.requests
2.Pillow
3.lxml
(2)代码说明:
(1).要爬取从第几页开始的连续几页,就在主函数中修改GetPageURL(root,start,counts)中start和counts的值。
(2).自己改存放路径,windows下文件操作的路径是\而非\,前面的\是转义字符,后面的\是文件路径标识。
(3).图片的名字都是[0-9]*.jpg的格式,有兴趣的可以自己把大图的名字也爬下来设置为图片名称。
(4).高清原图需要登录,留坑.
(3)源代码:
在代码根目录文件夹中创建一个存放图片的文件夹:picture
先测试以下是否能正常获取目标网页源码:
# -*- coding:utf