python制作手机壁纸_Python爬取手机壁纸图片

news/2025/3/7 5:53:01/

使用Python爬取图片。

1 说明

本文通过爬虫程序的编写,实现了一个简单易懂的爬虫程序,方便初学者理解,主要程序分为网页获取函数,以及保存下载函数,这就是所有爬虫程序的基本思想。(本文不涉及反爬,具体反爬程序以后再说),文章最后附上全部代码。

爬取目标网站为

https://www.3gbizhi.com

此网站没有反爬,图片质量也很好,爬取时需加延时,不要给他们的服务器造成太大负担,且用且珍惜!!!

2 准备事项:

先pip安装以下命令

使用的第三方库

1.配置以下请求头,模拟自己是个浏览器

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36 Edg/86.0.622.58',

"Cookie": "UM_distinctid=1758c184bea97-0d217f1a4272e5-7d677f67-144000-1758c184beb5c8; CNZZDATA1255139604=1098251314-1604371519-%7C1604403769; Hm_lvt_3b19253d112290a9184293cf68a02346=1604373205,1604402882,1604407056; _uupv=3; Hm_lpvt_3b19253d112290a9184293cf68a02346=1604407260"

}

2.通过分析网址,发现此网页的分类是根据url的名字变化,实现,因此,我们只需要将分类之后的文字作为参数传入get_parse_page函数中,就可以找到目标网页。

def get_parse_page(name):

# name是你要搜索的关键词

url = r'https://www.3gbizhi.com/%s'%(name)

#1. 发送请求,获取相应

response = requests.get(url, headers=headers)

html = response.content.decode()

# print(html)

# 2.正则表达式解析网页

results = re.findall('src="(.*?).238.390.jpg"', html) # 返回一个图片下载链接的列表

pic_names = re.findall('alt="(.*?)"', html) # 返回图片名字一个列表

print(results)

# 根据获取到的图片链接,把图片保存到本地

save_to_txt(results, name, pic_names)

# 保存图片到本地

3.在获取到图片链接以及图片名字之后,进行下载,保存到本地指定的文件路径中,并进行命名。

def save_to_txt(results, name, pic_names):

j = 0

# 在当目录下创建文件夹

if not os.path.exists('./' + name):

os.makedirs('./' + name)

# 下载图片

for result in results:

try:

pic = requests.get(result, headers=headers)

print(pic)

print('正在保存第{}个'.format(j + 1))

time.sleep(random.random())

except:

print('当前图片无法下载')

j += 1

continue

# 把图片保存到文件夹

file_full_name = './' + name + '/' + str(j) + '-' + pic_names[j] + '.jpg'

with open(file_full_name, 'wb') as f:

f.write(pic.content)

j += 1

4.这是主函数

# 主函数

if __name__ == '__main__':

name = "sjbz"#手机壁纸分类

get_parse_page(name)

# 获取图片url连接

# 配置以下模块

import random

import requests

import re

import os

import time

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36 Edg/86.0.622.58',

"Cookie": "UM_distinctid=1758c184bea97-0d217f1a4272e5-7d677f67-144000-1758c184beb5c8; CNZZDATA1255139604=1098251314-1604371519-%7C1604403769; Hm_lvt_3b19253d112290a9184293cf68a02346=1604373205,1604402882,1604407056; _uupv=3; Hm_lpvt_3b19253d112290a9184293cf68a02346=1604407260"

}

def get_parse_page(name):

# name是你要搜索的关键词

# pn是你想下载的页数

url = r'https://www.3gbizhi.com/%s'%(name)

# 发送请求,获取相应

response = requests.get(url, headers=headers)

html = response.content.decode()

# print(html)

# 2.正则表达式解析网页

# "objURL":"http://n.sinaimg.cn/sports/transform/20170406/dHEk-fycxmks5842687.jpg"

results = re.findall('src="(.*?).238.390.jpg"', html) # 返回一个列表

pic_names = re.findall('alt="(.*?)"', html) # 返回一个列表

print(results)

# 根据获取到的图片链接,把图片保存到本地

save_to_txt(results, name, pic_names)

# 保存图片到本地

def save_to_txt(results, name, pic_names):

j = 0

# 在当目录下创建文件夹

if not os.path.exists('./' + name):

os.makedirs('./' + name)

# 下载图片

for result in results:

try:

pic = requests.get(result, headers=headers)

print(pic)

print('正在保存第{}个'.format(j + 1))

time.sleep(random.random())

except:

print('当前图片无法下载')

j += 1

continue

# 把图片保存到文件夹

file_full_name = './' + name + '/' + str(j) + '-' + pic_names[j] + '.jpg'

with open(file_full_name, 'wb') as f:

f.write(pic.content)

j += 1

# 主函数

if __name__ == '__main__':

name = "sjbz"

get_parse_page(name)

文章来源:https://blog.csdn.net/weixin_31748999/article/details/112940324
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ppmy.cn/news/489429.html

相关文章

Spring6 i18n国际化

随着互联网的发展,越来越多的企业和个人开始关注全球化的需求。在这个背景下,多语言支持成为了一个重要的课题。Spring框架作为一款优秀的Java开发框架,提供了丰富的i18N支持,能帮助搬砖工快速实现多语言应用。 1、i18n概述 国际…

使用mount临时挂载出现mount error(13): Permission denied

问题报错 mount error(13): Permission denied Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) //报错信息,提示账号密码错误,其实并不是 添加secntlmssp参数即可;中途可能需要等一些时间 mount -t cifs -o usernamelisi,p…

wuduadoiawjhd

通过随机数产生一个指令序列,共320条指令。

wsgsb

人生需要不断地努力,加油,我们都会有美好的未来 你的一生是一个不断努力攀岩的长路,不要被一种坎坷束缚,只有不断的努力,才能成就美好的未来。 我们都在不断努力进步 ‘你的努力终究会被看见’

MTK平台android11开机动画客制化

Android开机动画总共有三个过程。第一个开机动画是在Kenel启动时显示的,第二个开机动画是在init进程启动时显示的,这两个都是静态图片。第三个动画是在系统服务启动过程中显示的,他是一个动态图片。 确定第一帧和第二帧的路径: …

EDP转HDMI 4K60HZ视频信号转换方案CS5263完全替代IT6563

IT6563替代芯片|CS 5263|4LAN DP转HDMI 2.0音视频讯号转换芯片 IT6563是一款4LAN EDP转HDMI2.0 HDMI2.0转换器芯片。IT6563FN结合DisplayPort接收机和HDMI发射机,通过转换功能支持DisplayPort输入和HDMI输出。内置DisplayPort接收器完全兼容DisplayPort 1.2a和HDCP …

TSUMU58CDT9-1是液晶显示器图形处理IC,面板分辨率高达wUXGA。三adc /PLL,一个DVI/HDMI接收器,一个高质量的显示处理引擎,一个集

TSUMU58CDT9-1是液晶显示器的整体解决方案图形处理IC,面板分辨率高达wUXGA。它配置了一个高速集成的三adc /PLL,一个集成的DVI/HDMI接收器,一个高质量的显示处理引擎,一个集成的微控制器和输出显示接口,可以支持LVDS面…