美文网首页
python入门: 爬取静态页面图片并保存到本地

python入门: 爬取静态页面图片并保存到本地

作者: 寒冰助手 | 来源:发表于2020-03-13 17:43 被阅读0次

#首先引入一下三个库,其中requests、BeautifulSoup需要先安装

import requests

import os

from bs4 import BeautifulSoup


# 1.创建文件夹

path = './photo'

if os.path.exists(path) == False:

    os.makedirs(path)


# 2.获取所有图片路径

# 加headers防止404错误(某些网站有反爬机制)

headers = {

    'User-Agent':

    'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'

}

#以知乎某回答中的图片为例

url = 'https://www.zhihu.com/question/26620889/answer/905030937'

res = requests.get(url, headers=headers)

bs = BeautifulSoup(res.text)

#获取所有class为origin_image的img标签

texts = bs.find_all('img', class_='origin_image')

# 循环生成图片路径list

imgs = []

for i in texts:

    if i not in imgs:

        #获取img标签中data-original属性的值,即图片url

        imgs.append(i.get('data-original'))

# 去重(爬图过程中可能会产生重复路径)

photo = list(set(imgs))


# 3.循环保存图片到本地

for i, j in enumerate(photo):

    # 获取图片二进制文本

    img = requests.get(j, headers=headers).content

    # 以索引为图片名

    img_name = str(i) + '.jpg'

    # 保存到本地

    with open(path + '/' + img_name, 'wb') as file:

        file.write(img)


以上,第一次使用简书发布文章,也是最近才学的python,欢迎大家指出不足

相关文章

网友评论

      本文标题:python入门: 爬取静态页面图片并保存到本地

      本文链接:https://www.haomeiwen.com/subject/fyajshtx.html