我们来详细讲解一下如何用 Python 爬取壁纸网站。
1. 确定爬取目标
首先,我们需要确定需要爬取的壁纸网站。以 Unsplash 壁纸网站为例。
2. 分析页面结构
打开 Unsplash 网站,我们可以看到各种精美的壁纸,每一页都有多张图片。我们可以使用 Chrome 浏览器自带的开发者工具,通过检查页面元素来分析页面结构。可以看到每张图片都被包含在一个 figure
标签中,而图片的地址则在 img
标签的 src
属性中。
3. 发送请求并解析页面
接下来,我们可以使用 Python 的 requests
库发送请求,获取页面的 HTML 内容,并使用 beautifulsoup4
库解析 HTML 内容,提取出页面中所有图片的 URL。
示例代码1:
import requests
from bs4 import BeautifulSoup
url = 'https://unsplash.com/nature'
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(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
figures = soup.find_all('figure')
urls = []
for figure in figures:
img = figure.find('img')
urls.append(img['src'])
print(urls)
输出结果示例1:
['https://images.unsplash.com/photo-1480077877382-5c7873e73f8d?ixlib=rb-1.2.1&auto=format&fit=crop&w=500&q=60',
'https://images.unsplash.com/photo-1446304812757-0bf6fdf43f11?ixlib=rb-1.2.1&auto=format&fit=crop&w=500&q=60',
'https://images.unsplash.com/photo-1468818438317-93e56b40b97d?ixlib=rb-1.2.1&auto=format&fit=crop&w=500&q=60',
'https://images.unsplash.com/photo-1473853805612-b7f9c9cea994?ixlib=rb-1.2.1&auto=format&fit=crop&w=500&q=60',
...
]
4. 下载图片
我们可以使用 Python 的 urllib
库下载图片到本地。
示例代码2:
import urllib.request
# 下载单张图片
urllib.request.urlretrieve('https://images.unsplash.com/photo-1480077877382-5c7873e73f8d?ixlib=rb-1.2.1&auto=format&fit=crop&w=500&q=60', '1.jpg')
# 下载多张图片
urls = ['https://images.unsplash.com/photo-1480077877382-5c7873e73f8d?ixlib=rb-1.2.1&auto=format&fit=crop&w=500&q=60',
'https://images.unsplash.com/photo-1446304812757-0bf6fdf43f11?ixlib=rb-1.2.1&auto=format&fit=crop&w=500&q=60',
'https://images.unsplash.com/photo-1468818438317-93e56b40b97d?ixlib=rb-1.2.1&auto=format&fit=crop&w=500&q=60',
'https://images.unsplash.com/photo-1473853805612-b7f9c9cea994?ixlib=rb-1.2.1&auto=format&fit=crop&w=500&q=60']
for i, url in enumerate(urls):
urllib.request.urlretrieve(url, f'{i+1}.jpg')
代码示例2中的 urlretrieve
方法可以将远程图片下载到本地,需要指定图片的 URL 和保存的文件名。
到此为止,我们就实现了用 Python 爬取壁纸网站的示例。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python 爬取壁纸网站的示例 - Python技术站