Python爬虫:批量把这些好看的图片爬下来保存本地,爱了吗?

admin 2022年3月9日12:50:43评论108 views字数 1933阅读6分26秒阅读模式

我们在遨游网络世界时,看到一些中意的图片,总是忍不住流连忘返,甚至还想都保存下来,但是一张一张的保存又太麻烦了,那这时候就得用到咱们的python了。


Python爬虫:批量把这些好看的图片爬下来保存本地,爱了吗?


众所周知,Python的某一项专长,就是批量下载,那我们今天就一起试试。


Python爬虫:批量把这些好看的图片爬下来保存本地,爱了吗?

一、欲功善其事,必先利其器


知识点:

  • 1、系统分析目标网页

  • 2、html标签数据解析方法

  • 3、海量图片数据一键保存


软件:


python 3.8
pycharm 2021专业版


没有软件的小伙伴可以在官网下载,也可以在左侧扫一下领取

需要安装的模块:


requests # 第三方 模块 
parsel # 解析数据


键盘按 win+r 输入cmd打开命令提示符窗口,输入 pip install requests 安装,两个模块安装方法是一样的。


二、本文思路


1、分析网站 (思路分析)

①确定爬取内容

数据所在地址 www.kanxiaojiejie.com

②通过查看网页源代码分析数据内容


2、爬虫流程

发送请求 - 获取数据 - 解析数据 - 保存数据

  • 向目标网站发送网络请求 www.kanxiaojiejie.com

  • 获取数据 (网页源代码)

  • 解析数据 (提取数据) 相册详情页地址 标题

  • 向详情页发送网络请求

  • 获取数据 (网页源代码)

  • 解析数据 (提取数据图片链接)

  • 向图片链接发送请求

  • 保存数据


三、代码展示


模块导入


import requests     
import parsel     
  

发送请求


def get_response(html_url):

    headers = {
        'User-Agent''Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36'
    }
    # 为什么这里要 requests.get()  post() 请求会更安全...
    response = requests.get(url=html_url, headers=headers)
    return response

保存数据


def save(img_url):

    img_data = requests.get(img_url).content
    img_name = img_url.split('/')[-1]
    print("正在下载: " + img_name)
    with open("img\" + img_name, mode='wb'as f:
        f.write(img_data)

解析数据

获取图片url地址以及标题 提取数据


def parse_1(html_data):

    selector = parsel.Selector(html_data)
    link_list = selector.css('.entry-title a::attr(href)').getall()
    return link_list

获取图片url地址以及标题


ef parse_2(html_data):

    selector_1 
= parsel.Selector(html_data)
    img_list = selector_1.css('.entry.themeform p img::attr(src)').getall()
    return img_list

主函数


def run(url):
    data_html = get_response(url).text
    link_list = parse_1(data_html)
    for link in link_list:
        data_html_1 = get_response(link).text
        img_list = parse_2(data_html_1)
        for img in img_list:
            save(img)


调用主函数运行


for page in range(1112):
    url 
= f'www.kanxiaojiejie.com/page/{page}'
    run(url)


运行效果我就不展示了,大家自己去试试哈~

我还给大家准备了大量的Python学习资料,直接在群里就可以免费领取了。
Python学习交流1群:924040232 (1群满了就加2群)
Python学习交流2群:815624229



原文始发于微信公众号(Python学习交流):Python爬虫:批量把这些好看的图片爬下来保存本地,爱了吗?

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月9日12:50:43
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Python爬虫:批量把这些好看的图片爬下来保存本地,爱了吗?https://cn-sec.com/archives/823552.html

发表评论

匿名网友 填写信息