爬虫---Beautiful Soup 爬取图片

本文介绍如何使用Python的BeautifulSoup库从指定网站爬取图片,并保存到本地。通过实例解析,展示如何定位图片URL,处理不完整的链接,以及图片的保存过程。

  上一篇简单的介绍Beautiful Soup 的基本用法,这一篇写下如何爬取网站上的图片,并保存下来

 

爬取图片

1.找到一个福利网站:http://www.xiaohuar.com/list-1-1.html

2.通过F12进行定位图片

3.通过下图可以看到标签为img,然后通过width="210"的属性

 

爬取方法

1.通过find_all()的方法进行查找图片位置

2.筛选出图片的URL和图片名称

3.筛选后会发现其中有一些图片URL不完整

4.这个时候需要在代码中加一个判断,如何URL不完整 我们就给他补充完整

import requests
from bs4 import BeautifulSoup
import os
# 请求地址
url = 'http://www.xiaohuar.com/list-1-1.html'
html = requests.get(url).content
# BeautifulSoup 实例化
soup  = BeautifulSoup(html,'html.parser')
jpg_data = soup.find_all('img',width="210")
for i in jpg_data:
    data = i['src']
    name = i['alt']
# 判断URL是否完整
    if "https://www.dxsabc.com/" not in data:
        data = 'http://www.xiaohuar.com'+ data

 

保存图片

1.判断一个文件夹是否存在,不存在就重新创建

2.request模块请求图片的URL

3.通过content返回图片二进制,进行写入文件夹中

# coding:utf-8
import requests
from bs4 import BeautifulSoup
import os
# 创建一个文件夹名称
FileName = 'tupian'
if not os.path.exists(os.path.join(os.getcwd(), FileName)):     # 新建文件夹   
     print(u'建了一个名字叫做', FileName, u'的文件夹!')
     os.mkdir(os.path.join(os.getcwd(),'tupian'))
else:
    print(u'名字叫做', FileName, u'的文件夹已经存在了!')
url = 'http://www.xiaohuar.com/list-1-1.html'
html = requests.get(url).content    # 返回html
soup  = BeautifulSoup(html,'html.parser')   # BeautifulSoup对象
jpg_data = soup.find_all('img',width="210") # 找到图片信息
for i in jpg_data:
    data = i['src'] # 图片的URL
    name = i['alt'] # 图片的名称
    if "https://www.dxsabc.com/" not in data:
        data = 'http://www.xiaohuar.com'+data
    r2 = requests.get(data)
    fpath = os.path.join(FileName,name)
    with open(fpath+'.jpg','wb+')as f : # 循环写入图片
        f.write(r2.content)
print('保存成功,快去查看图片吧!!')

图片就不贴了,喜欢的可以自己动手写一写。

转载于:https://www.cnblogs.com/qican/p/11134248.html

好的,我可以帮你回答这个问题。 首先,需要安装Beautiful Soup库,可以使用以下命令进行安装: ``` pip install beautifulsoup4 ``` 然后,你可以编写一个Python爬虫程序,使用Beautiful Soup库来获取网页中的图片链接,并下载这些图片。 以下是一个示例程序,可以爬取指定网页上的所有图片,并下载到本地: ```python import requests from bs4 import BeautifulSoup import os # 指定要爬取网页链接 url = 'https://www.example.com/' # 发送HTTP请求,获取网页内容 response = requests.get(url) # 创建BeautifulSoup对象,用于解析网页内容 soup = BeautifulSoup(response.content, 'html.parser') # 查找所有的图片链接 image_links = soup.find_all('img') # 创建一个目录用于存储下载的图片 if not os.path.exists('images'): os.makedirs('images') # 遍历所有的图片链接,下载图片 for image_link in image_links: image_url = image_link['src'] image_name = image_url.split('/')[-1] image_path = os.path.join('images', image_name) with open(image_path, 'wb') as f: f.write(requests.get(image_url).content) print('Downloaded:', image_name) ``` 在这个示例程序中,首先使用requests库发送HTTP请求,获取网页内容。然后使用BeautifulSoup库解析网页内容,查找所有的图片链接。接着创建一个目录用于存储下载的图片,遍历所有的图片链接,下载图片并保存到本地。 需要注意的是,这个示例程序只能爬取静态网页中的图片,无法爬取动态网页中的图片。如果要爬取动态网页中的图片,可以考虑使用Selenium等工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值