写一段Python代码,要求完成爬取百度某网页上所有的图片和文字信息保存在本地文件操作
时间: 2024-10-29 17:20:51 浏览: 23
Python使用Scrapy爬虫框架全站爬取图片并保存本地的实现代码
在Python中,我们可以使用`requests`库来获取网页内容,然后通过BeautifulSoup解析HTML,提取图片和文本信息。这里是一个简单的示例,假设我们要抓取百度首页的图片和部分文本:
```python
import requests
from bs4 import BeautifulSoup
import os
# 请求百度首页
url = 'https://www.baidu.com'
response = requests.get(url)
html_content = response.text
# 解析HTML
soup = BeautifulSoup(html_content, 'lxml')
# 提取图片信息
images = soup.find_all('img', src=True) # 找到所有src属性存在的img标签
image_links = [img['src'] for img in images] # 获取链接列表
# 保存图片到本地
if not os.path.exists('baidu_images'):
os.makedirs('baidu_images')
for link in image_links:
try:
response_image = requests.get(link, stream=True)
with open(os.path.join('baidu_images', link.split('/')[-1]), 'wb') as f:
for chunk in response_image.iter_content(1024):
if chunk:
f.write(chunk)
print(f'Saved image: {link}')
except Exception as e:
print(f'Error saving image: {e}')
# 提取部分文本信息
texts = soup.get_text()[:500] # 取前500字作为示例
with open('baidu_text.txt', 'w', encoding='utf-8') as f:
f.write(texts)
print('Text saved to baidu_text.txt')
```
注意:实际操作中需要处理网络请求异常以及权限问题,并且可能因网站结构变化导致爬取结果不准确。此外,频繁大量地爬取可能会对服务器造成压力,请遵守网站的robots.txt规则。
阅读全文