python爬取4k高清壁纸(再也不怕没有壁纸了)

您所在的位置:网站首页 电脑换壁纸的方法图片 python爬取4k高清壁纸(再也不怕没有壁纸了)

python爬取4k高清壁纸(再也不怕没有壁纸了)

2024-07-15 17:25| 来源: 网络整理| 查看: 265

今天突然想换壁纸,在网上找了一圈没有找到满意的,正好学了爬虫,于是我就想把它们全都爬取下来,慢慢挑选。 这次爬取的目标是:彼岸图网动漫壁纸 在这里插入图片描述 接下来,我将详细讲解爬取过程: 首先点开网站,右键–检查 观察源码信息: 在这里插入图片描述 在这里插入图片描述 可以发现图片地址就是网站的域名加上上面的地址,接下来就是敲代码的事了。

观察可以发现图片总共134页: 在这里插入图片描述 但为了保证代码实用性,因为今天134页,明天就有可能135,甚至136页,所以首先提取壁纸页数,代码如下:

# 启始url url = 'http://pic.netbian.com/4kdongman/' req = requests.get(url, headers=headers) html = req.content.decode('gbk') # print(html) tree = etree.HTML(html) # 提取壁纸页数 num = tree.xpath('//div[@class="page"]/a[last() - 1]/text()')[0]

接下来,得到所有页数的url:

for i in range(int(num)): # 创建目录用于下载 path = 'F:\\图片文件\\高清壁纸\\第{}页\\'.format(i + 1) if not os.path.exists(path): os.makedirs(path) # 改变当前工作目录 os.chdir(path) print('----------第{}页---------正在下载-----'.format(i + 1)) img_url = url + 'index_{}.html'.format(i + 1) if i == 0: img_url = url # print(img_url)

这样就可以对每一页的url请求得到每一张图片的url:

r = requests.get(img_url, headers=headers) html = r.content.decode('gbk') tree = etree.HTML(html) # 图片链接 img_list = tree.xpath('//div[@id="main"]/div[@class="slist"]/ul/li/a/img/@src') # print(img_list, len(img_list)) count = 1 for img in img_list: img = 'http://pic.netbian.com' + img

接下来,就是下载了。 完整代码如下:

import requests from lxml import etree import os headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36', } def download(img, count): r = requests.get(img, headers=headers) pic = r.content try: with open('{}.jpg'.format(count), 'wb') as f: f.write(pic) print('{}.jpg-----下载成功'.format(count)) except: print('下载失败!') def get_img(img_url): r = requests.get(img_url, headers=headers) html = r.content.decode('gbk') tree = etree.HTML(html) # 图片链接 img_list = tree.xpath('//div[@id="main"]/div[@class="slist"]/ul/li/a/img/@src') # print(img_list, len(img_list)) count = 1 for img in img_list: img = 'http://pic.netbian.com' + img # 下载图片 download(img, count) count = count + 1 def main(): # 启始url url = 'http://pic.netbian.com/4kdongman/' req = requests.get(url, headers=headers) html = req.content.decode('gbk') # print(html) tree = etree.HTML(html) # 提取壁纸页数 num = tree.xpath('//div[@class="page"]/a[last() - 1]/text()')[0] for i in range(int(num)): # 创建目录用于下载 path = 'F:\\图片文件\\高清壁纸\\第{}页\\'.format(i + 1) if not os.path.exists(path): os.makedirs(path) # 改变当前工作目录 os.chdir(path) print('----------第{}页---------正在下载-----'.format(i + 1)) img_url = url + 'index_{}.html'.format(i + 1) if i == 0: img_url = url # print(img_url) # 获取图片链接 get_img(img_url) if __name__ == '__main__': main()


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3