第一次用python批量爬取图片

本文通过三种不同方法(正则表达式、XPath 和 BeautifulSoup)详细介绍了如何从指定网站抓取图片资源,并提供了完整的 Python 代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

话不多说,直接看代码!!!!!

第一种方法(正则表达式)

import requests#应用库
import re#应用库
import time#应用库
url='https://www.ivsky.com/tupian/dajiao_maotouying_v62812/'#网站链接
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36 Edg/88.0.705.56'}#进行UA伪装
r = requests.get(url=url,headers=headers).text#用requests获取网页文本
url1=re.findall('<img src="(.*?)" alt=".*?">',r)#用正则获取链接
del url1[-3:];url2=[]#从列表中删除后3个获取的链接
for i in url1:#对链接进行拼接
    url2.append('https:'+i)#拼接后放到新的列表
for z in url2:#遍历链接并批量存储当前目录下的图片
    time.sleep(1)#限制爬取的速度
    r1 = requests.get(url=z,headers=headers).content#获得响应数据
    filename =z.split('/')[-1]#获取链接后的名字作为图片名称
    with open(filename,'wb') as fp:#永久化储存
        fp.write(r1)

第二种方法(xpath)

import requests#应用库
import time#应用库
from lxml import etree#引用库
url='https://www.ivsky.com/tupian/dajiao_maotouying_v62812/'#网站链接
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36 Edg/88.0.705.56'}#进行UA伪装
r = requests.get(url=url,headers=headers).text.encode(encoding='utf-8').decode()#用requests获取网页文本
response=etree.HTML(r,etree.HTMLParser())#转换为HTML文档
url1=response.xpath('//img/@src');url2=[]#用xpath匹配链接和创造新列表
for i in url1:#对链接进行拼接
    url2.append('https:'+i)#拼接后放到新的列表
for z in url2:#遍历链接并批量存储当前目录下的图片
    time.sleep(1)#限制爬取的速度
    r1 = requests.get(url=z,headers=headers).content#获得响应数据
    filename =z.split('/')[-1]#获取链接后的名字作为图片名称
    with open(filename,'wb') as fp:#永久化储存
        fp.write(r1)

第三种方法(bs4)

import requests#应用库
import time#应用库
from bs4 import BeautifulSoup#引用库
url='https://www.ivsky.com/tupian/dajiao_maotouying_v62812/'#网站链接
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36 Edg/88.0.705.56'}#进行UA伪装
r = requests.get(url=url,headers=headers).text.encode(encoding='utf-8').decode()#用requests获取网页文本
soup=BeautifulSoup(r,'lxml')#转换为HTML文档
url2=[];url3=[]#创建新列表
for i in soup.select('img'):#把这锅汤用select的方法获取属性img的数据
    url2.append(i['src'])#获取属性src的值放到新列表
for i in url2:#对链接进行拼接
    url3.append('https:'+i)#拼接后放到新的列表
for z in url3:#遍历链接并批量存储当前目录下的图片
    time.sleep(1)#限制爬取的速度
    r1 = requests.get(url=z,headers=headers).content#获得响应数据
    filename =z.split('/')[-1]#获取链接后的名字作为图片名称
    with open(filename,'wb') as fp:#永久化储存
        fp.write(r1)

欢迎大佬斧正和指点。
`

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值