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
    

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

猜你喜欢

转载自blog.csdn.net/naiue/article/details/106902345