精华内容
下载资源
问答
  • 写一个可以爬取网页图片简单爬虫。我们先打开这个网页,查看想要爬取类容的特征。点击想要爬取图片,审查元素。查看图片地址,寻找地址的限定。想要爬取的图标查看图片的地址踩好点后可以着手编写我们的爬虫。...

    写一个可以爬取网页图片的简单爬虫。

    我们先打开这个网页,查看想要爬取类容的特征。点击想要爬取的图片,审查元素。查看图片地址,寻找地址的限定。想要爬取的图标查看图片的地址

    踩好点后可以着手编写我们的爬虫。

    import urllib .request #导入用于打开URL的扩展库模块

    import urllib .parse

    import re #导入正则表达式模块

    def open_url(url):

    req=urllib .request .Request (url) #将Request类实例化并传入url为初始值,然后赋值给req

    #添加header,伪装成浏览器

    req.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0')

    #访问url,并将页面的二进制数据赋值给page

    page=urllib .request .urlopen(req)

    #将page中的内容转换为utf-8编码

    html=page .read().decode('utf-8')

    return html

    def get_img(html):

    # [^"]+\.jpg 匹配除"以外的所有字符多次,后面跟上转义的.和png

    p=r'([^

    #返回正则表达式在字符串中所有匹配结果的列表

    imglist=re.findall(p,html )

    #循环遍历列表的每一个值

    for each in imglist :

    #以/为分隔符,-1返回最后一个值

    filename=each.split("/")[-1]

    访问each,并将页面的二进制数据赋值给photo

    photo=urllib .request .urlopen(each )

    w=photo .read()

    #打开指定文件,并允许写入二进制数据

    f=open('E://image//'+filename+'.png','wb')

    #写入获取的数据

    f.write(w)

    #关闭文件

    f.close()

    #该模块既可以导入到别的模块中使用,另外该模块也可自我执行

    if __name__=='__main__':

    #定义url

    url="http://findicons.com/pack/2787/beautiful_flat_icons"

    #将url作为open_url()的参数,然后将open_url()的返回值作为参数赋给get_img()

    get_img(open_url(url))

    运行程序后打开文件夹应该是这样的

    这样就爬取成功啦!

    展开全文
  • #python简单爬取网站部分图片及去重 爬取思路: 下载网页html数据,使用正则r’href="[^\s]*?"’ 匹配所有使用href链接跳转的数据 数据去重,防止下载网页重复。 筛选本站域名,下载网页数据。 使用正则表达式r’...

    #python简单爬取网站部分图片及去重

    爬取思路:

    1. 下载网页html数据,使用正则r’href="[^\s]*?"’ 匹配所有使用href链接跳转的数据
    2. 数据去重,防止下载网页重复。
    3. 筛选本站域名,下载网页数据。
    4. 使用正则表达式r’http[^\s]*?.(?:jpg|png|jpeg)’ 匹配图片链接数据
    5. 将所有的图片链接放入set去重
    6. 使用urllib.request.urlretrieve函数下载图片到本地

    代码实现:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    import urllib.request
    import requests
    import os,re
    import urllib
    
    
    
    def get_html(url):
        try:
            # page = urllib.request.urlopen(url)
            # html_a = page.read()
            response = requests.get(url)
            response.encoding = 'utf-8'
            html_a = response.text
        except Exception as e:
            return None
        # return html_a.decode('utf-8')
        return html_a
    def get_href(host,url):
        href = r'href=\"[^\s]*?\"'
        # href = r'href=\"[^\s]*?\s'
        hrefe = re.compile(href)
        html = get_html(url)
        hreflist = hrefe.findall(html)
        hreflist = list(set(hreflist))  # 网页url去重
        #本网页图片下载
        hreflist.append("href=\""+url+"\"")
        pagenum = 0 #爬取网页数
        imgnum = 0 #爬取图片数
        #图片集合
        imageset = set()
        for heurl in hreflist:
            # 判断是否是该网站的网页
            if len(host) == 0 or host in heurl:
                print(heurl)
                try:
                    heurl = eval(heurl.strip("href="))
                except Exception as e:
                    print('Error:', e)
                    continue
                body = get_html(heurl)
                if body is not None:
                    pagenum= pagenum + 1
                    get_img(body,imageset)
                # else:
                #     get_img(body)
        imgnum = img_download(imageset)
        return pagenum,imgnum,imageset
    
    
    #图片下载
    def img_download(imglist):
        x = 1
        path = 'D:\\img'  # 设置图片的保存地址
        if not os.path.isdir(path):
            os.makedirs(path)  # 判断没有此路径则创建
        paths = path + '\\'  # 保存在test路径下
        for imgurl in imglist:
            # imgurl = eval(imgurl+'\"')
            # if 'http' in imgurl:
            #     ina = 1
            # else:
            #     if imgurl.startswith('//'):
            #         imgurl = 'http:' + imgurl
            #     else:
            #         imgurl = 'http://'+imgurl
            try:
    
                urllib.request.urlretrieve(imgurl, '{0}{1}.png'.format(paths, x))  # 打开imgList,下载图片到本地
                x = x + 1
                print('图片%d开始下载,注意查看文件夹'%(x))
            except Exception as e:
                print('Error:', e)
        return x
    
    def get_img(html,imageset):
        # reg = r'https://[^\s]*?\.png'
        reg = r'http[^\s]*?\.(?:jpg|png|jpeg)'
        imgre = re.compile(reg)  # 转换成一个正则对象
        imglist = imgre.findall(html)  # 表示在整个网页过滤出所有图片的地址,放在imgList中
        imglist=list(set(imglist)) #图片url去重
        for img in imglist:
           imageset.add(img)
    
    if __name__== '__main__':
        #本网页抓取图片数据
        #html_b = get_html("https://ent.china.com/")  # 获取该网页的详细信息
        #print(get_img(html_b))  # 从网页源代码中分析下载保存图片
        #部分全站抓取图片数据
        pagenum,imgnum,imageset = get_href("csdn","https://www.csdn.net/")
        print("抓取网页个数:%d"%(pagenum),"抓取图片数:%d"%(imgnum))
    
    

    代码可以直接运行,依赖模块需要自行下载,有更好的方式欢迎交流讨论。
    创作不宜,转载请标明出处。

    展开全文
  • Python3.6爬取网站图片

    千次阅读 2017-09-01 18:16:38
    最近几天在学校python,写了个简单的爬虫程序: 成功运行代码的前提是安装了python需要的第三方库,以下是代码:# -*- coding:utf8 -*- import os import re import requests as rq import urllib from bs4 import ...

    最近几天在学习python,写了个简单的爬虫程序:

    成功运行代码的前提是安装了Python需要的第三方库,以下是代码:

    # -*- coding:utf8 -*-
    import os
    import re
    import requests as rq
    import urllib
    from bs4 import BeautifulSoup
    
    #下载图片
    def getHtml2():
        html = rq.get(urls).text
        soup = BeautifulSoup(html,"html.parser")#文档对象
        for k in soup.find_all('a',class_="tit"):#获取class为tit的a标签
            print(k)
            addr = re.compile('<a class="tit" href="(.*?)"')
            url = re.findall(addr,repr(k))[0]
            #创建路径文件夹名称
            cate_name = re.findall('<a .*?>(.*?)</a>',repr(k),re.S|re.M)[0]
            path = 'C:/data/images\\%s' % cate_name
            # 创建文件目录
            os.mkdir(path)
            # 切换到该目录
            os.chdir(path)
            #print(url)
            for x in range(1,20):
                url1 = url.split(".html")[0]+"_"+str(x)+".html"
                html1 = rq.get(url1).text
                soup1 = BeautifulSoup(html1,"html.parser")#文档对象
                image = soup1.find_all('img')[0]
                print(image)
                res_url = r"(?<=src=\").+?(?=\")|(?<=src=\').+?(?=\')"
                img_url = re.findall(res_url ,repr(image), re.I|re.S|re.M)[0]
                urllib.request.urlretrieve(img_url, '%s.jpg' % x) #prython3.6写法
    
    def main():
        print("开始解析网页===>")
        global urls
        
        urls = "http://www.58gc.cn/brjr/"
        getHtml2()
        print("网页解析结束===>")
    
    main()
    

    展开全文
  • Python简单爬取图片实例

    万次阅读 多人点赞 2016-12-05 15:38:05
    零基础详细讲解python爬取网站图片下载到本地的简单实例

    都知道Python的语法很简单易上手,也很适合拿来做爬虫等等,这里就简单讲解一下爬虫入门——简单地爬取下载网站图片。

    效果

    就像这样自动爬取下载图片到本地:

    代码:

    其实很简单,我们直接看下整体的代码:

    #coding = utf-8
    import urllib
    import re
    
    def getHtml(url):
        page = urllib.urlopen(url)
        html = page.read()
        return html
    
    def getImg(html):
        reg = 'src="(.+?\.jpg)" alt='
        imgre = re.compile(reg)
        imglist = re.findall(imgre, html)
        x = 0
        for imgurl in imglist:
            urllib.urlretrieve(imgurl, '%s.jpg' % x)
            x+=1
        return imglist
    
    html = getHtml("http://pic.yxdown.com/list/0_0_1.html")
    
    print getImg(html)

    导入库:

    第一行的utf-8是为了支持中文。

    这里我们导入了两个库,分别是 urllib 和 re。urllib 是用来进行 url 网络请求的,而 re 是一个正则表达式匹配的库。这里我们要先对网站进行模拟请求,然后找到网站中的图片进行下载。

    请求网站:

    第一个方法:getHtml。

    这就是用来模拟浏览器访问网站的,参数 url 是要访问的网站链接,这里我们在下面的变量 html 处调用了这个方法,其访问的 url 是一个图片网站,关于选择访问网站还有一点等下要说一下。

    在这个方法中,我们先用了 urllib 库的 urlopen 方法来打开网站,然后通过 read 方法来获取网站的源代码,其实就跟在网页中“右键–>检查“是一个意思。最后返回了读取到的网站源代码。

    上面说了要注意的一点是,由于很多网站会禁止人们随意爬取数据,有反爬虫的技术,所以在选择要爬取的网站的时候,最好先通过这个方法获取网站源代码,然后 print 输出 html 变量看一下获取到的内容是否是正常的网页源代码,而不是403之类的禁止访问,如果被禁止了,那么自然也不可能爬取到数据了。

    找到图片:

    接下来是一个 getImg 方法。

    在这个方法中,我们设置了一个正则表达式,用来在网页源代码中找到图片的资源路径,这个正则表达式要根据不同的网站去具体设置,比如我爬取的这个网站,图片对应的源代码是这样的:

    因此我们设置的正则表达式就是 reg = ‘src=”(.+?.jpg)” alt=’ ,其实就是根据图片资源路径前后的内容来限制的。

    这里也要注意一点,有的网站做了动静分离,图片有其单独的完整资源路径,而有的是直接是相对位置,这时候要么对其路径进行处理,但大多时候你并不知道怎么处理才能拼出完整路径,因此还是找有完整资源路径的图片来试验比较好。

    紧接着用 re 库的 compile 函数将正则表达式转换成正则表达式对象,然后使用 findall 函数寻找 html 网页源代码中包含的匹配 imgre 的所有内容,返回一个序列。我们可以输出这个序列,可以看到大量图片资源路径组成的一个序列,如果没爬取到,就是个空序列了。

    下载图片

    最后一步就是下载图片,这里我们用 for 循环,将图片资源路径中的每个图片,使用 urllib 库的 urlretrieve 函数来下载图片,这个函数其实可以接受很多参数,这里我们设置了要下载的图片资源路径和要命名的名字(我们使用一个变量x来对每个图片依次命名为0,1,2…),还可以设置下载路径、用来显示下载进度的回调函数等等。如果不设置下载路径默认会下载到代码文件当前所在的文件夹。

    执行

    现在,去执行一次代码就可以啦,mac本身是支持python的,不用配置环境,直接将代码放入一个 .py 文件中,使用终端进入其文件位置,敲入 python xxx.py 命令就可以啦。


    版权所有:http://blog.csdn.net/cloudox_

    展开全文
  • 这篇文章主要介绍了Python爬虫爬取煎蛋网图片代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下今天,试着爬取了煎蛋网的图片。在这里顺便给大家推荐一个...
  • 看了看网上许多爬取图片的教程,觉得很繁琐,这里提供一个简单的代码。 首先,我们打开一个界面的原代码 我们以4399为例 name=“http://imga4.5054399.com/upload_pic/2018/1/11/4399_08593631516.jpg” 其图片...
  • 于是我也就写一个python3简单的爬虫,爬虫一下贴吧的图片吧。话不多说,我们开始。首先简单来说说一下知识。一、什么是爬虫?网页上面采集数据二、学习爬虫有什么作用?做案例分析,做数据分析,分析网页结构..........
  • nodejs和python 简单爬取百度图片保存在本地近期想搞爬虫,就也顺便学了点python, 百度图片搜索api(通过控制台拿到) ...
  • python爬虫爬取百度图片开发环境涉及的知识点ostimeurllib.errorquotere(.*?)re.compile(key)代码实现 开发环境 日期:2021.9.11 开发环境:python 3.9和pycharm ps:pycharm今天第一次用,随着将越来越多开发环境...
  • python简单爬取图片

    2019-12-16 09:19:48
    这里我们来简单爬取一下英雄联盟的英雄信息和英雄图片 代码如下: import requests import json import re import os class Grab_img(object): hero_img_list = [] def __init__(self,url): self....
  • 20行Python代码爬取王者荣耀全英雄皮肤

    万次阅读 多人点赞 2019-11-21 22:01:03
    我们今天的重点是爬取王者荣耀所有英雄的所有皮肤,而且仅仅使用20行Python代码即可完成。 准备工作 爬取皮肤本身并不难,难点在于分析,我们首先得得到皮肤图片的url地址,话不多说,我们马上来到王者荣耀的官网: ...
  • 本文实例为大家分享了Python爬取网络图片的具体代码,供大家参考,具体内容如下代码:import urllibimport urllib.requestimport re#打开网页,下载器def open_html ( url):require=urllib.request.Request(url)...
  • 都知道Python的语法很简单易上手,也很适合拿来做爬虫等等,这里就简单讲解一下爬虫入门——简单爬取下载网站图片。效果就像这样自动爬取下载图片到本地:image.png代码:其实很简单,我们直接看下整体的代码:#...
  • 那么,假设你现在有100台机器可以用,怎么用python实现一个分布式的爬取算法呢?我们把这100台中的99台运算能力较小的机器叫作slave,另外一台较大的机器叫作master,那么回顾上面代码中的url_queue,如果我们能把这...
  • python3爬取百度图片

    2020-10-25 19:38:25
    python3爬取百度图片 最终目的:能通过输入关键字进行搜索,爬取相应的图片存储到本地或者数据库 首先打开百度图片网站,搜索任意一个关键字,比如说:水果,得到如下的界面 分析: 1、百度图片搜索结果的...
  • 2,获取请求头,来模拟浏览器浏览,不让网站直接就暴露我们是python,怎么获取请求头呢,很简单,按f12(右键检查) 很好,你已经会了请求头,那么现在就开始用工具把。 3,所以我们前期的代码是这样的: def ...
  • 主要介绍了python3 爬取图片的实例代码,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
  • 利用python3 爬取贴吧图片 并且实现翻页功能 模拟浏览器 通过bs4,requests库和正则表达式 爬取图片并现在到本地硬盘中 爬虫第一课
  • (1)初学Python-只需4步,爬取网站图片https://www.jianshu.com/p/11454866bc15[START]第一步:获取网页的源代码urllib.request.urlopen().read()这个方法是获取到请求的这个URL所返回的网页源代码信息数据,返回值...
  • Python 实现爬取图片

    2017-08-19 09:01:11
    Python 实现爬取图片本篇博客实现的是用Python实现爬虫爬取武汉大学教务系统首页的验证码: 下面是简单的实现,分为两部分: 一、从网页上爬取图片; 二、把图片保存到本地;下面是实现代码:# coding:utf-...
  • 今天学习Python爬虫简单的实例。爬取好看的汽车图片并保存到我的电脑。话不多说,直接上代码:import urllib.requestimport reimport chardetdef getHtml(url):page = urllib.request.urlopen(url)html = page.read...
  • 今天,太阳HTTP就为大家简单介绍一下如何用python3爬取网络图片,这也是一种常见的爬取图片的方法。 代码: # -- coding:utf-8 -- import urllib import urllib.request import re def getHtml(url): request = ...
  • import requests //可以直接ctrl +单击requests直接在python的集成开发环境中下载该库。 import re //正则表达式 for i in range(1, 97): if i == 1: response = requests.get('...
  • python爬取网站图片

    千次阅读 2016-03-13 19:55:16
    周末自己花时间看了一下python爬取网络图片的一些实例,自己动手也操作了一下。 算是记录一些知识点。 Python爬取网站信息有lxml和beautifulsoup这两个库。具体beautifulsoup可以很好的处理不规范的标记并生成剖析...
  • python 爬虫爬取百度图片

    千次阅读 2017-10-04 11:05:52
    本人初学python爬虫,想试着爬取百度图片搜索上的图片。但简单的只是设置一下爬取的网页,然后用正则取筛选图片的链接,在京东或者当当的网页上可以,在百度上不好使。具体的代码如下:import re import urllib....
  • python简单爬取图片

    2020-04-14 23:14:41
    1.复制图片的地址 2. import requests #requests库 import os def getImage(url): r = requests.get(url) #获取图片url b=os.getcwd() #获取当前目录 os.makedirs(b+'\\'+imageFolder)...
  • 这周忙着各种复习考试和补课真的是有点晓凡,差不多快落了有一个兴趣没学习了,突然想着python可以爬取文字,那肯定也可以提取图片吧。果不其然,前辈们都为我们这些小白做出了贡献,模仿着以前大佬的提示,我也爬到...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,890
精华内容 6,756
关键字:

python简单爬取网站图片

python 订阅