广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python 爬取网页图片详解流程
  • 1003
分享到

Python 爬取网页图片详解流程

2024-04-02 19:04:59 1003人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

简介 快乐在满足中求,烦恼多从欲中来 记录程序的点点滴滴。 输入一个网址从这个网址中解析出图片,并将它保存在本地 流程图 程序分析 解析主网址 def get_urls():

简介

快乐在满足中求,烦恼多从欲中来

记录程序的点点滴滴。
输入一个网址从这个网址中解析出图片,并将它保存在本地

流程图

在这里插入图片描述

程序分析

解析主网址


def get_urls():
    url = 'Http://www.nipic.com/show/35350678.html' # 主网址
    pattern = "(http.*?jpg)"
    header = {
            'user-agent': 'Mozilla/5.0 (windows NT 10.0; Win64; x64) AppleWEBKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36'
    }
    r = requests.get(url,headers=header)
    r.encoding = r.apparent_encoding
    html = r.text
    urls = re.findall(pattern,html)
    return urls

url 为需要爬的主网址
pattern 为正则匹配
header 设置请求头
r = requests.get(url,headers=header) 发送请求
r.encoding = r.apparent_encoding 设置编码格式,防止出现乱码

属性 说明
r.encoding 从http header中提取响应内容编码
r.apparent_encoding 从内容中分析出的响应内容编码

urls = re.findall(pattern,html) 进行正则匹配
re.findall(pattern, string, flags=0)
正则 re.findall 的简单用法(返回string中所有与pattern相匹配的全部字串,返回形式为数组

下载图片并存储


def download(url_queue: queue.Queue()):
    while True:
        url = url_queue.get()
        root_path = 'F:\\1\\' # 图片存放的文件夹位置
        file_path = root_path + url.split('/')[-1] #图片存放的具体位置
        try:
            if not os.path.exists(root_path): # 判断文件夹是是否存在,不存在则创建一个
                os.makedirs(root_path)
            if not os.path.exists(file_path): # 判断文件是否已存在
                r = requests.get(url)
                with open(file_path,'wb') as f:
                    f.write(r.content)
                    f.close()
                    print('图片保存成功')
            else:
                print('图片已经存在')
        except Exception as e:
            print(e)
        print('线程名: ', threading.current_thread().name,"url_queue.size=", url_queue.qsize())

此函数需要传一个参数为队列
queue模块中提供了同步的、线程安全的队列类,queue.Queue()为一种先入先出的数据类型,队列实现了原语,能够在多线程中直接使用。可以使用队列来实现线程间的同步。
url_queue: queue.Queue() 这是一个队列类型的数据,是用来存储图片URL
url = url_queue.get() 从队列中取出一个url
url_queue.qsize() 返回队形内元素个数

全部代码


import requests
import re
import os
import threading
import queue
def get_urls():
    url = 'http://www.nipic.com/show/35350678.html' # 主网址
    pattern = "(http.*?jpg)"
    header = {
            'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36'
    }
    r = requests.get(url,headers=header)
    r.encoding = r.apparent_encoding
    html = r.text
    urls = re.findall(pattern,html)
    return urls
def download(url_queue: queue.Queue()):
    while True:
        url = url_queue.get()
        root_path = 'F:\\1\\' # 图片存放的文件夹位置
        file_path = root_path + url.split('/')[-1] #图片存放的具体位置
        try:
            if not os.path.exists(root_path):
                os.makedirs(root_path)
            if not os.path.exists(file_path):
                r = requests.get(url)
                with open(file_path,'wb') as f:
                    f.write(r.content)
                    f.close()
                    print('图片保存成功')
            else:
                print('图片已经存在')
        except Exception as e:
            print(e)
        print('线程名:', threading.current_thread().name,"图片剩余:", url_queue.qsize())

if __name__ == "__main__":
	url_queue = queue.Queue()
	urls = tuple(get_urls())
	for i in urls:
	    url_queue.put(i)
	t1 = threading.Thread(target=download,args=(url_queue,),name="craw{}".fORMat('1'))
	t2 = threading.Thread(target=download,args=(url_queue,),name="craw{}".format('2'))
	
	t1.start()
	t2.start()

到此这篇关于python 爬取网页图片详解流程的文章就介绍到这了,更多相关Python 爬取网页图片内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python 爬取网页图片详解流程

本文链接: https://www.lsjlt.com/news/156799.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python 爬取网页图片详解流程
    简介 快乐在满足中求,烦恼多从欲中来 记录程序的点点滴滴。 输入一个网址从这个网址中解析出图片,并将它保存在本地 流程图 程序分析 解析主网址 def get_urls(): ...
    99+
    2022-11-12
  • Python爬取网页中的图片(搜狗图片)详解
    前言 最近几天,研究了一下一直很好奇的爬虫算法。这里写一下最近几天的点点心得。下面进入正文: 你可能需要的工作环境:   Python 3.6官网下载 本地下载 我们这里以sogou作为爬取的...
    99+
    2022-06-04
    图片 搜狗 详解
  • python如何爬取网页图片
    要使用Python爬取网页图片,可以使用requests库来发送HTTP请求,然后使用beautifulsoup库或者正则表达式来解...
    99+
    2023-08-20
    python
  • python3.7---爬取网页图片
    #!/usr/bin/python import reimport urllibimport urllib.request #python3中urlopen、urlritrieve都在request库里面了,所以要导入此库 def ht...
    99+
    2023-01-31
    网页 图片
  • Python应用开发——爬取网页图片
    Python应用开发——爬取网页图片 目录 Python应用开发——爬取网页图片前言1 爬取原理讲解1.1 查看网页源代码1.2 分析网页源码并制定对应的爬取方案1.3 完善爬取流程和细节 ...
    99+
    2023-09-10
    python 爬虫 网页图片
  • 怎么使用python爬取网页图片
    本篇内容介绍了“怎么使用python爬取网页图片”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在现在这个信息爆炸的时代,要想高效的获取数据,...
    99+
    2023-07-02
  • python爬虫入门实战之爬取网页图片
    本篇文章给大家带来了关于Python的相关知识,其中主要整理了爬取网页图片的相关问题,要想高效的获取数据,爬虫是非常好用的,而用python做爬虫也十分简单方便,下面通过一个简单的小爬虫程序来看一看写爬虫的基本过程,下面一起来看一下,希望对...
    99+
    2022-07-11
    python
  • Python爬虫爬取网站图片
    此次python3主要用requests,解析图片网址主要用beautiful soup,可以基本完成爬取图片功能, 爬虫这个当然大多数人入门都是爬美女图片,我当然也不落俗套,首先也...
    99+
    2022-11-12
  • 怎么利用Python批量爬取网页图片
    你可以使用Python的requests库来发起HTTP请求,并使用BeautifulSoup库来解析HTML文档以获取图片的URL...
    99+
    2023-09-27
    Python
  • Python获取网页数据详解流程
    Requests 库是 Python 中发起 HTTP 请求的库,使用非常方便简单。 发送 GET 请求 当我们用浏览器打开东旭蓝天股票首页时,发送的最原始的请求就是 GET 请求,...
    99+
    2022-11-12
  • python爬取网站美女图片
    今天周五,项目刚刚上线完,有些时间,闲着无聊,继续复习爬虫,这次打算爬取网站的美女图片。得先找到目标,然后目标网站还不会反爬虫,因为自己只是小白,好了开始。寻找目标,发现了目标,哈哈 http://www.meizitu.com 里面图片按...
    99+
    2023-01-31
    美女 图片 网站
  • 用python爬取某个图片网站的图片
    爬取单张图片 # 爬取单张图片import requests # 导入requests库url = "https://file.lsjlt.com/upload/f/202309/12/54vwhbwy2re.jpg" # 图片地址re...
    99+
    2023-09-12
    python 爬虫
  • 怎么使用matlab爬取网页图片
    要使用Matlab来爬取网页图片,可以使用以下步骤:1. 首先,需要安装和配置Matlab的Web Access Toolbox。这...
    99+
    2023-08-20
    matlab
  • Python实现微博动态图片爬取详解
    由于微博的网页端有反爬虫,需要登录,所以我们换个思路,曲线救国。 我们找到微博在浏览器上面用于手机端的调试的APL,如何找到呢? 我这边直接附上微博的手机端的地址:https://...
    99+
    2022-11-13
  • python 爬取天气网卫星图片
    目录项目地址:代码部分下载生成文件功能创建文件夹生成时间列表生成下载URL列表主函数爬取效果项目地址: https://github.com/MrWayneLee/weather-demo 代码部分 下载生成文件功能...
    99+
    2022-06-02
    python 爬取天气网 python 爬取图片 python 爬取卫星
  • Pycharm怎么爬取网页文本和图片
    要使用Pycharm爬取网页文本和图片,你可以使用以下步骤:1. 导入所需的库:`requests`和`beautifulsoup4...
    99+
    2023-08-18
    Pycharm
  • 如何使用Python爬虫爬取网站图片
    这篇文章主要介绍了如何使用Python爬虫爬取网站图片,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。此次python3主要用requests,解析图片网址主要用beautif...
    99+
    2023-06-22
  • 怎么用Python爬取某图网的图片
    本篇内容介绍了“怎么用Python爬取某图网的图片”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!相信很多设计小伙伴有好的灵感,但是没有好的设...
    99+
    2023-06-15
  • python爬虫系列Selenium定向爬取虎扑篮球图片详解
    前言: 作为一名从小就看篮球的球迷,会经常逛虎扑篮球及湿乎乎等论坛,在论坛里面会存在很多精美图片,包括NBA球队、CBA明星、花边新闻、球鞋美女等等,如果一张张右键另存为的话真是手都点疼了。作为程序员还是...
    99+
    2022-06-04
    爬虫 详解 篮球
  • 利用python抓取网页图片
        近期在家想看华为官方的【IP,图话技术,微图】系列文档,奈何家里是长宽,基本打不开页面,刷新多次,心力憔悴。▎下图感受下:    突然想起上次华为云大会送了台云服务器,一直被我用来做linux实验机。于是,突发奇想,利用python...
    99+
    2023-01-31
    网页 图片 python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作