用request爬取复杂一点的风景图
时间: 2024-04-05 20:29:17 浏览: 47
好的,以下是使用 Python 的 requests 库爬取风景图的示例代码:
```python
import requests
url = "https://www.pexels.com/search/scenic/"
response = requests.get(url)
if response.status_code == 200:
html = response.text
# 从 HTML 中提取图片链接
img_urls = re.findall(r'<img.*?src="(.*?)".*?>', html)
# 下载图片
for i, img_url in enumerate(img_urls):
response = requests.get(img_url)
with open(f"scenic_{i}.jpg", "wb") as f:
f.write(response.content)
else:
print("请求出错,错误码为:", response.status_code)
```
上述代码会爬取 Pexels 网站上的风景图,并将图片下载到本地。需要注意的是,由于 Pexels 网站的图片链接是通过 JavaScript 动态生成的,所以在实际使用中可能需要使用模拟浏览器的方式来获取图片链接。同时,为了防止对网站造成过大的访问压力,我们还需要设置适当的访问间隔,以避免被封禁 IP。
相关问题
用request爬取复杂一点的动物图片
好的,以下是使用Python的requests库爬取复杂一点的动物图片的示例代码:
```python
import requests
from bs4 import BeautifulSoup
import os
# 创建存储图片的文件夹
if not os.path.exists('animal_images'):
os.makedirs('animal_images')
# 目标网站的URL
url = 'https://www.pexels.com/search/animal/'
# 发送GET请求并解析响应
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
# 在HTML中查找所有图片元素
images = soup.find_all('img', {'class': 'photo-item__img'})
# 逐个下载图片并保存到本地
for i, img in enumerate(images):
img_url = img['src']
img_response = requests.get(img_url)
# 构造图片的文件名
img_name = f'animal_images/animal_{i}.jpg'
# 保存图片到本地
with open(img_name, 'wb') as f:
f.write(img_response.content)
print(f'已下载图片 {img_name}')
```
这段代码会爬取Pexels网站上的动物图片,并将它们保存到一个名为`animal_images`的文件夹中。你可以根据需要修改代码中的URL和文件夹名。注意,这段代码可能会下载大量的图片,所以请谨慎使用。
python怎么用request爬取百度图片
要使用Python的requests库爬取百度图片,您可以按照以下步骤进行操作:
1. 安装requests库:如果您还没有安装requests库,可以使用以下命令进行安装:
```
pip install requests
```
2. 编写爬取代码:下面是一个简单的例子,演示如何使用requests库爬取百度图片的搜索结果:
```python
import requests
def download_images(keyword, num_images):
# 构建百度图片搜索的URL
search_url = f'https://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&word={keyword}&pn=0&rn={num_images}'
# 发送GET请求
response = requests.get(search_url)
# 处理响应结果
if response.status_code == 200:
# 获取图片URL
image_urls = [data['middleURL'] for data in response.json().get('data', []) if 'middleURL' in data]
# 下载图片
for i, url in enumerate(image_urls):
try:
response = requests.get(url)
with open(f'image{i}.jpg', 'wb') as f:
f.write(response.content)
print(f'Successfully downloaded image{i}.jpg')
except:
print(f'Failed to download image{i}.jpg')
else:
print('请求失败')
# 要搜索的关键词和要下载的图片数量
keyword = 'cat'
num_images = 10
# 执行爬取
download_images(keyword, num_images)
```
在上述代码中,我们构建了一个特定的URL,其中包含了搜索关键词和要下载的图片数量。然后,我们发送GET请求来获取搜索结果,并解析响应结果中的图片URL。最后,我们使用requests库下载图片并保存到本地。
请注意,这只是一个简单的示例,实际应用中可能需要更多的处理和错误处理。另外,爬取网站的图片可能需要遵守该网站的使用条款和法律法规。请确保遵守相关规定并尊重他人的权益。
阅读全文