Python中使用request爬取图片

在Python中使用request爬取图片,并保存。
需要注意的是,使用正则匹配时,可以先保存html的一页作为参考,再去对比图片链接的规则。

import re,requests
import os

url="https://www.4kbizhi.com"
headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.81 Safari/537.36 Edg/104.0.1293.47"}
data1=requests.get(url=url,headers=headers)  #发送请求
data1.encoding='utf-8'  
print(data1.text)
if os.path.exists('./file')==False: #判断当前文件路径是否存在
     os.mkdir('./file')

def parse(data):
    urls = re.findall(r'.*?',data)      #(.*?)表示需要匹配的对象,可保存html文件的格式查看
    print(urls)#正则匹配,查找图片链接地址,类型为[(1,2)]这种,需要遍历
    for i in urls:  
        list='https://www.4kbizhi.com'+i[-1]   #前面加上前缀,-1为索引最后一个
        print(list)
        rs=requests.get(list,headers=headers)
        with open(f'./files/{i[-2]}.jpg','wb') as f:   #以wb类型保存,i[-2]为图片名称
            f.write(rs.content)

if __name__ == '__main__':
    parse(data1.text)
    for i in range(2,30):  
        url2 = f'https://www.4kbizhi.com/index_{i}.html'  #从第二页开始,地址变为index_n
        data2 = requests.get(url=url2, headers=headers)   #重新发送地址请求
        data2.encoding = 'utf-8'
        parse(data2.text)   #调用解析函数,要求是文本格式

你可能感兴趣的:(python,爬虫,开发语言)