从百度爬取图片并将其保存在"E:\真人",代码
时间: 2024-09-25 14:03:12 浏览: 13
在Python中,我们可以使用requests库来获取网页内容,然后BeautifulSoup解析HTML来定位图片链接,最后使用os库将图片下载到指定目录。下面是一个简单的示例,假设你需要爬取百度首页的第一张图片:
```python
import requests
from bs4 import BeautifulSoup
import os
# 定义目标URL和保存路径
url = 'https://www.baidu.com'
save_path = "E:\\真人"
# 发送请求
response = requests.get(url)
# 使用BeautifulSoup解析HTML
soup = BeautifulSoup(response.text, 'html.parser')
# 查找页面上的第一张图片
img_tags = soup.find_all('img', limit=1) # 限制查找一个图像
if img_tags:
img_url = img_tags[0].get('src') # 获取图片链接
else:
print("未找到图片")
相关问题
python爬取图片并保存_爬虫:大量爬取百度图片——python
以下是使用Python爬取百度图片并保存的示例代码:
```python
# 导入依赖库
import requests
import re
import os
# 设置搜索关键字
keyword = "美食"
# 设置图片保存路径
save_path = "./images/"
# 构造百度图片搜索的URL
url = "https://image.baidu.com/search/index?tn=baiduimage&word={}".format(keyword)
# 发送HTTP请求并获取响应
response = requests.get(url)
# 使用正则表达式从响应内容中提取图片URL列表
img_urls = re.findall('"objURL":"(.*?)",', response.text, re.S)
# 遍历图片URL列表并下载保存图片
for i, img_url in enumerate(img_urls):
try:
# 发送HTTP请求并获取响应
response = requests.get(img_url, timeout=10)
# 设置图片保存路径
img_path = os.path.join(save_path, "{}.jpg".format(i))
# 保存图片
with open(img_path, "wb") as f:
f.write(response.content)
print("成功下载第{:>3d}张图片!".format(i+1))
except Exception as e:
print("下载第{:>3d}张图片失败:{}".format(i+1, e))
```
解释一下上述代码的主要步骤:
1. 设置搜索关键字和图片保存路径
2. 构造百度图片搜索的URL
3. 发送HTTP请求并获取响应
4. 使用正则表达式从响应内容中提取图片URL列表
5. 遍历图片URL列表并下载保存图片
需要注意的是,这种方式只是简单的使用正则表达式从响应内容中提取图片URL,而没有使用任何API,因此可能存在一些不稳定性和容易被反爬虫机制封禁的风险。建议在使用时注意合理使用代理、设置请求头等防反爬措施。
从百度爬取图片,代码
从百度爬取图片通常需要使用Python的库如`requests`, `beautifulsoup4`以及处理文件的`os`模块。下面是一个简单的示例,说明如何使用这些工具来下载网页中的图片:
```python
import requests
from bs4 import BeautifulSoup
import os
def download_images(url):
# 发送HTTP请求获取网页内容
response = requests.get(url)
# 检查请求是否成功
if response.status_code == 200:
# 解析HTML内容
soup = BeautifulSoup(response.text, 'html.parser')
# 找到所有的图片标签,比如<img>元素
img_tags = soup.find_all('img')
# 图片URL前缀通常是网站域名,这里假设都是'http://www.baidu.com'
base_url = 'http://www.baidu.com'
# 遍历图片标签,构建完整的图片URL并下载
for img_tag in img_tags:
img_url = base_url + img_tag['src']
# 创建图片保存路径,如果没有就创建
save_path = os.path.join(os.getcwd(), img_url.split('/')[-1])
if not os.path.exists(os.path.dirname(save_path)):
os.makedirs(os.path.dirname(save_path))
# 下载图片
with open(save_path, 'wb') as f:
f.write(requests.get(img_url).content)
# 使用函数
download_images('你要爬取的百度搜索结果页面链接')
```
注意:实际操作时可能会遇到反爬虫策略,例如需要登录、限制频率等。此外,爬取他人网站的内容需遵守版权和robots.txt协议。在进行大规模爬取之前,最好先了解目标网站的规定。