利用python的requests爬取高清壁纸

news/2024/11/16 21:49:41/

明确爬取图片步骤

1. 确定网站的user-agent

进入网站右键点击 检查,可看到如下界面:

点击小wifi图标,最下面的user-agent即设为headers

 2.  查看网站源码

找出图片所对应的代码块

 即对应一个div列表,此时发现高清图地址位于a标签的href属性值中,所以需获取高清图地址 

继而在高清图页面进行源码分析

 发现地址位于a标签的href的属性中,所以我们利用xpath提取出高清图地址后在该页面进行xpath操作获取下载地址即可保存图片。

源码如下:

import requests
import os
from lxml import etreeheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.81 Safari/537.36 Edg/104.0.1293.47'}def di_zhi():list_suo = []for i in range(1, 11):if i > 1:url = f'https://wall.alphacoders.com/by_sub_category.php?id=306566&name=%E5%A4%A7%E4%BE%A6%E6%8E%A2%E7%9A%AE%E5%8D%A1%E4%B8%98+%E5%A3%81%E7%BA%B8&filter=4K+Ultra+HD&lang=Chinese/index_{i}.html'else:url = 'https://wall.alphacoders.com/by_sub_category.php?id=306566&name=%E5%A4%A7%E4%BE%A6%E6%8E%A2%E7%9A%AE%E5%8D%A1%E4%B8%98+%E5%A3%81%E7%BA%B8&filter=4K+Ultra+HD&lang=Chinese/index.html'response_text = requests.get(url, headers=headers, timeout=30).texttree = etree.HTML(response_text)# 提取出高清图所在页面地址r = tree.xpath('//div[@class="page_container"]/div/div/div/a/@href')for j in r:list_suo.append(j)# print(list_suo)return list_suodef gao_qing(kang):img_name = 0if not os.path.exists('./pikapi'):os.mkdir('./pikapi')for i in kang:url = "https://wall.alphacoders.com" + iresponse = requests.get(url=url, headers=headers, timeout=15)response.encoding = 'gbk'response_text = response.texttree = etree.HTML(response_text)img_src = tree.xpath('//div[@class="center img-container-desktop"]/a/@href')[0]#print(img_src)#print(img_name)# 获取图片二进制数据img_content = requests.get(img_src, headers=headers, timeout=30).contentimg_path = './pikapi/' + str(img_name) + '.jpg'with open(img_path, 'wb') as f:f.write(img_content)print(img_src + str(img_name) + '.jpg下载完毕')#print(img_name)img_name = img_name + 1print("pikapi全部下载完毕!")def main():k = di_zhi()gao_qing(k)if __name__ == '__main__':main()

 之前爬取的时候出现了由于爬取过快而被禁掉IP的问题,所以在这把 timeout调大一点

可见图片已经保存在指定的目录下咯 

 

我发现之前爬的网站页面照片只有二十张(这样会有重复),所以换个页面爬取(方法和之前一样):

import requests
import os
from lxml import etreeheaders = {'User-Agent': 'https://wall.alphacoders.com/by_collection.php?id=81&lang=Chinese'}def di_zhi():list_suo = []for i in range(1, 11):if i > 1:url = f'https://wall.alphacoders.com/by_collection.php?id=81&lang=Chinese/index_{i}.html'else:url = 'https://wall.alphacoders.com/by_collection.php?id=81&lang=Chinese/index.html'response_text = requests.get(url, headers=headers, timeout=30).texttree = etree.HTML(response_text)# 提取出高清图所在页面地址r = tree.xpath('//div[@class="page_container"]/div/div/div/a/@href')for j in r:list_suo.append(j)# print(list_suo)return list_suodef gao_qing(kang):img_name = 0if not os.path.exists('./pikapi2'):os.mkdir('./pikapi2')for i in kang:url = "https://wall.alphacoders.com" + iresponse = requests.get(url=url, headers=headers, timeout=15)response.encoding = 'gbk'response_text = response.texttree = etree.HTML(response_text)img_src = tree.xpath('//div[@class="center img-container-desktop"]/a/@href')[0]#print(img_src)#print(img_name)# 获取图片二进制数据img_content = requests.get(img_src, headers=headers, timeout=30).contentimg_path = './pikapi2/' + str(img_name) + '.jpg'with open(img_path, 'wb') as f:f.write(img_content)print(img_src + str(img_name) + '.jpg下载完毕')#print(img_name)img_name = img_name + 1print("pikapi全部下载完毕!")def main():k = di_zhi()gao_qing(k)if __name__ == '__main__':main()

不得不说,皮神是真的可爱


http://www.ppmy.cn/news/303909.html

相关文章

DVWA-----Javascript

目录 一、Javascript 1.简介 二、JavaScript Attacks 1.low 2.medium 3.high 4.impossible 终于来到了DVWA靶场的最后一关!!! 一、Javascript 1.简介 JavaScript(简称“JS”) 是一种具有函数优先的轻量级&#x…

联想计算机网络唤醒是怎么回事,笔记本开启网络唤醒功能设置的操作方法

操作步骤: 故障现象: 只接电池不连AC,无法实现网络唤醒功能 影响机型: X201/X201i/X201s X220 T410/T410i/T420 不限以上机型,如果机器BIOS-Network-Wake on LAN是如下选项的话(也就是说BIOS里面默认设置如果要实现魔包网络唤醒功…

thinkpad-X200恢复系统问题

恢复系统时一定要把硬盘模式调成AHCI 如果用兼容模式恢复的系统,使用一段时间会蓝屏

Visio21 、Endnote X9.1、Endnote20、Endnote21、Endnote22、Latex 22安装破解版

1. Visio21 来源:Visio 2021安装教程 [下载链接]: https://pan.baidu.com/s/1rzEoMIkws6TX3n9M15B0kw [提取码]: hrrj(建议复制粘贴链接与提取码) 安装步骤:Visio 2021安装教程 2. Endnote 来源安装步骤:EndNot…

计算机专业轻薄本可以吗,轻薄笔记本电脑推荐,锐智系创造本不可“轻”视!...

人们都说潮流是个怪圈,当一个元素流行起来,相似特征的各类产物就会相继诞生。很多年前苹果因为其极简的设计风格在电子产品界刮起了一阵风潮,这种以纯色单一logo组合而成的简约风格在后来也被很多国内品牌学了起来。在很多轻薄笔记本电脑推荐…

2022年轻薄笔记本推荐:对屏幕有高需求的学生党,看过来

今年收到不少压岁钱,寻思着给自己换一台笔记本电脑。搜了一下2022年值得购买的轻薄笔记本,综合考量了一下价格、性能还有屏幕质感,最终选择了华硕无畏Pro14 锐龙版。 作为一名设计学院的大三狗,华硕无畏Pro14 锐龙版真的太适合我…

php推荐笔记本,2016笔记本买什么牌子好?8款3000左右的笔记本强烈推荐

3000左右的笔记本推荐:小米笔记本Air 12.5 参考价格:3449元 推荐理由:1080P全高清屏幕、轻薄便携 小米笔记本Air 12.5是小米今年推出的首款笔记本产品,主打小屏,铝合金一体金属机身设计,拥有银色和金色两种…

轻薄 linux 笔记本,华为MateBook13Linux版全面屏轻薄性能笔记本一键重装win10图文

华为MateBook13Linux版全面屏轻薄性能笔记本,是一款很多用户都非常喜欢使用的笔记本,然而很多用户跟小编反馈,并不喜欢华为MateBook13Linux版全面屏轻薄性能笔记本的初始win10系统,想要一键重装其他的win10版本,针对这…