Python - BeautifulSoup 爬取方法

159 阅读1分钟

介绍

要用 BeautifulSoup 实现从网页中获取图片并下载的功能,可以按照以下步骤进行操作。BeautifulSoup 是一个解析HTML和XML文档的Python库,可以非常方便地提取网页中的数据。

1. 安装必要的库

pip install bs4 -i https://pypi.douban.com/simple

2. 示例代码实现

import requests
from bs4 import BeautifulSoup

# 获取网页内容
url = 'https://example.com'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')

# 获取所有图片标签
img_tags = soup.find_all('img')

# 提取图片的URL并下载
for idx, img_tag in enumerate(img_tags):
    img_url = img_tag.get('src')
    if img_url and img_url.startswith('http'):  # 确保是有效的URL
        img_response = requests.get(img_url)
        with open(f'jay_chou_image_{idx}.jpg', 'wb') as f:
            f.write(img_response.content)
        print(f"图片 {idx} 下载成功!")

3. 解析思路

  • 获取网页内容:使用 requests 库获取网页的HTML内容。
  • 解析HTML:使用 BeautifulSoup 来解析网页的HTML。
  • 提取图片链接:通过 find_all('img') 获取所有 <img> 标签,进而提取 src 属性值。
  • 下载图片:对于每个图片URL,使用 requests.get() 请求并保存到本地。

4. 注意事项

  • img_url 必须是有效的URL,通常可以通过检查是否以 http 开头来验证。
  • 需要根据网页的结构,调整 find_all() 方法中的标签类型或属性。