爬取古诗词网中古诗词的图片并保存图片地址,爬取图片时,首先要获取图片地址,在通过请求地址的方式获取到图片。只需要保存图片,不需要使用print输出图片地址,图片保存地址为step1/images,保存图片的格式为 JPG 格式的图片。
时间: 2024-11-27 21:11:23 浏览: 15
在Python中,我们可以使用requests库来发送HTTP请求获取图片,并使用BeautifulSoup库来解析HTML获取图片链接。这里需要安装这两个库,可以使用pip install requests beautifulsoup4命令进行安装。
首先,你需要定位古诗词网中包含图片元素的HTML结构,通常这会是一个`<img>`标签,其中src属性包含了图片的URL。下面是一个简单的步骤说明:
1. **引入必要的库**:
```python
import requests
from bs4 import BeautifulSoup
import os
```
2. **设置目标URL**:
```python
url = "https://www.example.com" # 替换为你想爬取的古诗词网页面
```
3. **发送GET请求获取网页内容**:
```python
response = requests.get(url)
```
4. **检查请求是否成功**:
```python
if response.status_code == 200:
page_content = response.text
else:
print("请求失败,状态码:", response.status_code)
exit()
```
5. **解析HTML获取图片链接**:
```python
soup = BeautifulSoup(page_content, 'html.parser')
img_tags = soup.find_all('img') # 找到所有的<img>标签
image_links = [img['src'] for img in img_tags if 'src' in img.attrs] # 提取src属性作为图片链接
```
6. **创建保存目录(如果不存在)**:
```python
save_dir = "step1/images"
os.makedirs(save_dir, exist_ok=True)
```
7. **下载并保存图片**:
```python
for link in image_links:
try:
img_response = requests.get(link, stream=True) # 使用stream=True以便处理大文件
with open(os.path.join(save_dir, os.path.basename(link)), 'wb') as f:
for chunk in img_response.iter_content(1024):
f.write(chunk)
print(f"图片 {link} 已保存.")
except Exception as e:
print(f"无法下载图片 {link}: {e}")
```
这个脚本会在指定的目录下保存所有找到的JPG格式的图片。注意替换`url`为实际的古诗词网页面地址,并且网络请求可能会受到反爬虫策略的影响,所以可能需要适当调整请求频率和头信息等。
阅读全文