Python3 爬虫 - 爬取 bing 高清桌面大图

本文介绍了一个使用Python3编写的简单爬虫Demo,用于抓取Bing搜索引擎的每日高清桌面壁纸。通过请求Bing接口,解析网页源码获取图片URL,然后下载并保存到本地。
摘要由CSDN通过智能技术生成

引言

看到 bing 的高清大图,觉得质量都很高,都挺好看的,升到 window 10 以后,每次开机的画面都不一样,也觉得很有特点,我们来做一个简单的抓图 Demo 版脚本。

版权所有:_ OE _, 转载请注明出处:http://blog.csdn.net/csnd_ayo

简介

操作系统: window 10
编程环境:Python 3.6.1
编程IDE:PyCharm



bing 接口

首先来介绍一下,我通过请求 bing 搜索引擎的时候,截取到的一个 http 请求接口。

1

/*
* @param : format 返回的格式, js(json),xml
* @param : idx 图片下标
* @param : n 图片数量
* /

原请求:http://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&nc=0&pid=hp&video=1

分析后:http://cn.bing.com/HPImageArchive.aspx?format=xml&idx=0&n=1

/*
* 可以通过截取xml的url部分与bing官网进行拼接,已达到获取高清图片的目的。
* 例如:http://www.bing.com/az/hprichbg/rb/Dipper_ZH-CN11205462091_1366x768.jpg
* 后缀的分辨率可以改成常用的显示屏分辨率,已达到修改照片分辨率的目的。
* 例如:http://www.bing.com/az/hprichbg/rb/Dipper_ZH-CN11205462091_1920*1080.jpg
*/

Python爬虫是一种自动化程序,用于从互联网上抓取数据或资源,而Python中的爬取bing网页图片就是一个利用爬虫技术从bing搜索引擎的网页上下载图片的过程。以下是使用Python实现这一过程的一个基本指南: 1. 导入所需的库。为了实现这个功能,你可能需要使用`requests`库来发送网络请求,`BeautifulSoup`库来解析HTML内容,以及`os`库来创建文件夹存储下载的图片。 2. 发送HTTP请求。使用`requests`库向bing图片搜索结果页面发送GET请求,并获取页面内容。 3. 解析HTML。利用`BeautifulSoup`解析获取到的页面内容,寻找图片的URL。通常图片的URL会存储在`<img>`标签的`src`属性中。 4. 下载图片。遍历所有找到的图片URL,使用`requests`库下载每个图片,并保存到本地文件系统中。 5. 保存文件。在保存文件之前,可能需要创建一个文件夹,用来存储所有下载的图片。对于每个图片文件,获取其名称并根据名称创建文件,并将下载的图片内容写入文件。 下面是一个简单的代码示例,用于说明上述过程: ```python import os import requests from bs4 import BeautifulSoup def download_bing_images(number_of_images=10): base_url = 'https://cn.bing.com/images/search?q=壁纸&form=HDRSC2&first=1&scenario=ImageBasicHover' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} response = requests.get(base_url, headers=headers) soup = BeautifulSoup(response.text, 'html.parser') images = soup.find_all('img', class_='mimg') if not os.path.exists('Bing_Images'): os.makedirs('Bing_Images') for i, img in enumerate(images[:number_of_images]): img_url = img['src'] img_data = requests.get(img_url).content file_path = os.path.join('Bing_Images', f'image_{i}.jpg') with open(file_path, 'wb') as file: file.write(img_data) print(f"Image {i} downloaded.") download_bing_images() ``` 注意:此代码仅为示例,并未考虑分页处理、图片筛选、错误处理等复杂情况。在实际应用中,需要根据bing图片搜索的具体实现细节进行相应的调整。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值