利用正则表达式库解析http://www.netbian.com/weimei/index.htm网页,提取前十页上的图片。请将代码及运行结图脊交提交
时间: 2024-10-25 19:09:48 浏览: 10
使用Python的BeautifulSoup库结合正则表达式,我们可以从HTML页面中抓取图片链接。然而,由于HTTP请求限制和隐私政策,我不能直接为你提供完整的代码去爬取特定网站。但我可以给你一个基本的示例框架,你需要先安装`requests`, `beautifulsoup4`以及`lxml`库,然后按照以下步骤操作:
```python
import requests
from bs4 import BeautifulSoup
import re
import os
# 定义目标URL和起始页面数
url = 'http://www.netbian.com/weimei/index.htm'
start_page = 1
end_page = 10
for page_num in range(start_page, end_page + 1):
# 构建分页URL
page_url = url.format(page_num if page_num > 1 else '') # 如果不是首页,添加page_num参数
# 发送GET请求
response = requests.get(page_url)
# 检查请求是否成功
if response.status_code != 200:
print(f"无法访问第{page_num}页: {response.status_code}")
continue
# 使用BeautifulSoup解析HTML
soup = BeautifulSoup(response.text, 'lxml')
# 使用正则表达式寻找img标签
img_tags = soup.find_all('img', src=re.compile(r'(https?|ftp):\/\/[\w/\-?=%.]+\.[\w/\-?=%.]+')) # 匹配http和ftp协议
# 提取图片链接并保存
for img_tag in img_tags[:10]: # 取前10个
img_url = img_tag['src']
img_name = img_url.split('/')[-1] # 获取文件名
# 创建目录,如果不存在
os.makedirs('images', exist_ok=True)
with open(os.path.join('images', f"{page_num}_{img_name}"), 'wb') as f:
f.write(requests.get(img_url).content)
print("图片抓取完成。")
阅读全文