利用模块requests和BeautifulSoup获取彼岸图网站的4K游戏高清图片 要求至少采集5页以上的4k游戏图片,游戏图片需保存到本地某个文件夹下
时间: 2024-09-26 19:12:35 浏览: 36
Python利用requests模块下载图片实例代码
为了利用Python的`requests`库和`BeautifulSoup`库来抓取彼岸图网站的4K游戏高清图片并保存到本地文件夹,你需要遵循以下步骤:
1. **安装依赖库**:
首先确保已经安装了`requests`和`beautifulsoup4`库,如果没有可以使用以下命令安装:
```shell
pip install requests beautifulsoup4
```
2. **导入所需的库**:
在Python脚本中,引入这两个库:
```python
import os
import requests
from bs4 import BeautifulSoup
```
3. **设置目标URL和图片保存路径**:
确定你要抓取的页面范围,比如5页,并创建一个用于保存图片的目录(如果不存在的话):
```python
base_url = "https://www.bilibili.com/gall" # 彼岸图首页地址
num_pages = 5
save_path = "./game_images_4k" # 图片保存目录,需要创建
if not os.path.exists(save_path):
os.makedirs(save_path)
```
4. **爬取单页图片链接**:
使用`requests.get`获取每一页的内容,然后解析HTML以提取图片链接。这里假设4K图片有特定的class或属性标识:
```python
def get_image_links(url, page_num):
response = requests.get(url + f"?p={page_num}")
soup = BeautifulSoup(response.text, 'html.parser')
img_tags = soup.find_all('img', class_='your_4k_class') or soup.find_all('img', attr={'data-src': True}) # 替换为实际的类名或属性
return [img['src'] for img in img_tags]
all_img_links = []
for i in range(1, num_pages + 1):
links = get_image_links(base_url, i)
all_img_links.extend(links)
```
5. **下载并保存图片**:
对于每张图片链接,用`requests`下载并保存到指定的文件夹:
```python
for link in all_img_links:
img_response = requests.get(link, stream=True) # 获取图像数据流
filename = os.path.join(save_path, os.path.basename(link)) # 获取文件名
with open(filename, 'wb') as f:
for chunk in img_response.iter_content(chunk_size=1024): # 分块写入避免内存溢出
if chunk:
f.write(chunk)
6. **完成后的操作**:
抓取完成后,你可以检查 `save_path` 目录,确认图片是否已成功保存。
阅读全文