python壁纸数据抓取_Python爬虫:爬取必应壁纸(可直接运行)

1、Why is bing?

必应专门的壁纸网站,每天都会更新一张高质量,漂亮到不行的图片。非常适合用来当电脑的桌面壁纸,且可以适配不同的桌面尺寸,提升你的桌面逼格。

2、code

2.1 所需要的第三方库

代码中涉及到的第三方库。

os

re

requests

2.2 代码

下载运行前需更改代码中储存下载图片的路径

下载即可运行!!

#爬取必应壁纸

import os

import re

import requests

def get_one_page(url): # 解析给定url的网页源代码

headers = {'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36'}

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

if(response.status_code == 200): # 状态码200说明返回状态正确,状态码是404,403等其他代号则说明网页请求失败

return response.text

return None

def download(url,filename): # 下载图片到本地文件夹

filepath = 'E:/vlog// '+ filename + '.jpg' # 这里的路径可以更改自己的文件夹

headers = {

'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36'}

if os.path.exists(filepath): #判断图片路径是否已经存在,如果存在就不保存了

return

with open(filepath,'wb')as f: # 把图片以二进制形式写入到本地

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

f.write(response.content)

def parse(html): # 解析网页源代码

pattern = re.compile('data-progressive="(.*?)".*?

(.*?)

') # 正则表达式筛选html

items = re.findall(pattern,html)

for item in items:

try:

url = item[0].replace('640','1920').replace('480','1080') # 替换图片尺寸

#print(url)

imagename = item[1].strip()

rule = re.compile(r'[a-zA-z1-9()-/]')#[]用来表示一组字符【abc】匹配a,b,或c

imagename = rule.sub('', imagename)

download(url,imagename.strip())

print(imagename,"正在下载")

except Exception:

continue

if __name__ == '__main__':

for page in range(1,20): # 爬取页面的范围,可以随意更改

url = 'https://bing.ioliu.cn/?p='+str(page)

print("正在抓取第", page, "页" ,url)

html = get_one_page(url)

parse(html)

3、Result

运行过程

运行结果

一些说明

下载的有些图片显示不出来,可能是解析源代码的时候出现的小问题,但是概率很小,基本上爬取100张图片才会出现几张问题图片

如果需要爬取大量图片,需要设置休眠时间,防止被浏览器的反爬机制识别为爬虫从而爬取失败

标签:Python,html,爬取,headers,imagename,url,必应,page

来源: https://blog.csdn.net/weixin_44064553/article/details/111026409

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值