12行python代码爬取网站图片

看了看网上许多爬取图片的教程,觉得很繁琐,这里提供一个简单的代码。
首先,我们打开一个界面的原代码
我们以4399为例

name=“http://imga4.5054399.com/upload_pic/2018/1/11/4399_08593631516.jpg”

其图片格式都为http://imga[数字].[数字].com/upload_pic[数字|“/”].jpg
这样我们写出其正则表达式

init = re.findall(r'(http://imga[0-9]\.[0-9]+\.com/upload.pic[0-9|/]+.[0-9]+\.jpg)',ht.text)

如果是中国国家地理网站

http://img0.dili360.com/pic/2018/07/25/5b580e60784568878806585_t.jpg@!rw6

我们可以看到其图片格式为http://img[数字].dili360.com/pic/[数字|“/”]_t.jpg@[数字或字符]
正则表达式略

然后,我们开始写作代码

同样以4399为例
前置条件:安装requests库(自行百度)
第一步,获取网站连接并解除编码问题

import requests
ht = requests.get('http://www.4399.com/')
ht.encoding = ht.apparent_encoding

第二步在获取的源代码文本里直接匹配正则表达式

init = re.findall(r'(http://imga[0-9]\.[0-9]+\.com/upload.pic[0-9|/]+.[0-9]+\.jpg)',ht.text)

第三步,逐个访问正则表达式里匹配到的链接,将得到的文本用二进制写入自定义文件

a=1
for line in init:
    print(line)#输出链接,便于测试
    f=open('d://4399//%s.jpg'%a,'wb+')#写入自定义文件夹
    img = requests.get(url=line)#读取连接
    f.write(img.content)#写入文件
    a+=1
    

至此,我们的教程结束
附上完整代码

import re
import requests
ht = requests.get('http://www.4399.com/')
ht.encoding = ht.apparent_encoding
init = re.findall(r'(http://imga[0-9]\.[0-9]+\.com/upload.pic[0-9|/]+.[0-9]+\.jpg)',ht.text)
a=1
for line in init:
    print(line)
    f=open('d://4399//%s.jpg'%a,'wb+')
    img = requests.get(url=line)
    f.write(img.content)
    a+=1
    

效果图:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值