看了看网上许多爬取图片的教程,觉得很繁琐,这里提供一个简单的代码。
首先,我们打开一个界面的原代码
我们以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
效果图: