精华内容
下载资源
问答
  • python爬虫----图片爬取之高清原图

    万次阅读 多人点赞 2017-07-25 11:21:05
    这次又来爬取图片啦,不过这次爬的是原图 大概的思路和上一篇差不多,不同的是不同的网站有不同的反爬策略 爬取的网站是:https://www.pexels.com/ 1、源码分析 进入网站后会出现一个图片搜索关键词的界面,...

    这次又来爬取图片啦,不过这次爬的是原图

    大概的思路和上一篇差不多,不同的是不同的网站有不同的反爬策略

    爬取的网站是:https://www.pexels.com/


    1、源码分析

    进入网站后会出现一个图片搜索关键词的界面,输入关键词后进入的网址是:https://www.pexels.com/search/你输入的关键词/

    通过观察源码发现这些链接就是图片



    因为我们要下载的是原图,所以通过点击下载会得到图片的真实网址




    在网址中发现图片有2中格式,jpeg和jpg

    我们可以从源码中用正则表达式获取  data-pin-media属性后面的链接或 src属性后面的链接

    但这些是image.pexels.com 而 真实图片网址是 static.pexels.com

    在写的时候要将他们改过来


    接着看源码,发现了这个


    这原来是页码的链接。本来网页是瀑布流的形式,没有点的翻页的选项。

    结合上面的代码,我们可以知道一页有15张图片。而这段代码最后一个显示的是36,说明一共有36页

    现在我们可以爬取多页的图片了



    2、文件储存

    文件操作要引用os模块

    用os.makedirs(path)来创建多层的文件夹

    os.path.exists判断是否有重复的文件夹或图片

    每一页图片就存在一个文件夹里



    3、代码

    import requests
    import re
    import os
    import time
    
    def get_url(url):
        kw = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64)'}
        try:
            r = requests.get(url,headers = kw)
            r.raise_for_status()
            r.encoding = r.apparent_encoding
            return r
        except:
            print('wrong!!!!!!!!!!!')
    
    
    def get_photourl(photo_url):
        kw = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64)'}
        try:
            r = requests.get(photo_url,headers = kw)
            r.raise_for_status()
            r.encoding = r.apparent_encoding
            return r
        except:
            return 'wrong'
    
    def get_photos(url,new_fpath):
        result = get_url(url)
        pattern = re.compile(r'src="https://images.pexels.com/photos/(\d+)/(.*?)\?h=350&auto=compress&cs=tinysrgb"',re.S)
        #真正的下载链接是static,不是images开头
        
        items = re.findall(pattern,result.text)
    
        for item in items:
            try:
                photo_url = 'https://static.pexels.com/photos/' + str(item[0]) + '/' + str(item[1])
                #把图片链接中的images,改成了static
                save(photo_url,item,new_fpath)
                time.sleep(1)
            except:
                continue
    
    
    def makedir(new_fpath,i,key):
        E = os.path.exists(new_fpath)
        if not E:
            os.makedirs(new_fpath)
            os.chdir(new_fpath)
            print('文件夹'+ key + '_page' + str(i + 1) + '创建成功!')
        else:
            print('文件夹已存在!')
    
    
    
    def save(photo_url,item,new_fpath):
        Final_fpath = new_fpath + '/' +str(item[0])+str(item[1])
    
        print('正在下载图片......')
    
        result = get_photourl(photo_url)
        if result != 'wrong':
            print('下载成功!')
        else:
            print('失败')
            
        
        
        E = os.path.exists(Final_fpath)
    
        if not E:
            try:
                with open(Final_fpath,'wb') as f:
                    f.write(result.content)
            except:
                print('下载失败!')
        else:
            print('图片已存在')
    
    
    def main():
        key = input('请输入搜索关键词(英文):')
    
        url =  'https://www.pexels.com/search/' + key + '/'
        
        num = int(input('请输入一共要下载的页数:'))#默认从第1页开始下载
    
        fpath = 'E:/python'
        for i in range(num):
            new_fpath = fpath + '/Photo2.0/' + key + '_page' + str(i + 1)
            makedir(new_fpath,i,key)
            if i >= 1:
                new_url = url + '?page=' + str(i + 1)
                get_photos(new_url,new_fpath)
            else:
                get_photos(url,new_fpath)
            time.sleep(3)
        
    main()


    4、注意事项

    有时候网站不会那么容易让我们爬到自己想要的东西,这时就要用一些常用的方法来解决问题

    (1)在requests.get函数里改写headers中的User-agent 和 cookies。主要目的就是模拟一个

    浏览器浏览网页

    (2)设置等待时间,用time模块,爬取太频繁会被网站禁止爬取


    5、问题分析

    (1)开始在用正则表达式匹配字段的时候,itme[1]这部分是这样的pexels-photo-46274.jpeg?,多了一个问号。

    我就在想会不会是"https://images.pexels.com/photos/(\d+)/(.*?)\?h=350&a 后面的那个?影响了匹配,

    我就在?前面加了个\转义字符,结果就好了。还有一种办法是item[1][:-1],直接略掉那个多余的问号。

    (2)这个爬虫实在太慢了,所以测试的时候只爬了2页。不过大致看了下后面页数的源码,应该没什么问题






    展开全文
  • 前段时间看了点Python的语法以及制作爬虫常用的类库,于是动手制作了一个爬虫尝试爬取一些炉石原画图片。本文仅记录对特定目标网站的分析过程和爬虫代码的编写过程。代码功能很局限,无通用性,仅作为一个一般爬虫...

    前段时间看了点Python的语法以及制作爬虫常用的类库,于是动手制作了一个爬虫尝试爬取一些炉石原画图片。本文仅记录对特定目标网站的分析过程和爬虫代码的编写过程。代码功能很局限,无通用性,仅作为一个一般爬虫程序提供参考。

    要爬取的网站入口页面是:https://hearthstone.gamepedia.com/Full_art。网页上半部分的<li>标记了每个炉石资料片图片的名称(其实是锚点连接),通过这些名称就可以获得各个资料片的专题链接,比如,冠军的试炼的专题资料片对应的网址为:https://hearthstone.gamepedia.com/The_Grand_Tournament_full_art

    进入专题页面后,可以看到该资料片的图片列表,其中也有各个图片的缩略图连接,但是我想找到每个图片的原图。单个图片介绍的页面连接在每个class="image"的<a>标签中。比如连接:https://hearthstone.gamepedia.com/File:Argent_Horserider_full.png

    进入单个图片的介绍页面后,可以找到class='internal'的<a>标签,它的href属性值就是该图片的原图连接。(嗯,判断的依据是从这个连接下载得到的图是最大的。。)

    目标网站的情况大致分析完了,好像也不复杂。下面按照分析过程给出一些代码。

    题外话:利用Python制作爬虫,我引用了两个类库。分别是BeautifulSoup和requests。Python版本是3.6.1。

    首先是根据入口页面获取各个资料片的连接:

    def get_links(url):
    r = requests.get(url)
    r.encoding = "utf-8"
    only_li = SoupStrainer(class_=re.compile("toclevel-1"))
    lis = BeautifulSoup(r.text, "html.parser", parse_only=only_li)
    links = []
    for li in lis:
    link = li.a["href"]
    links.append(link)

    return links

    参数url就是入口连接的字符串值:"https://hearthstone.gamepedia.com/Full_art"。通过requests.get(str)方法获得响应对象并设置其编码格式为"UTF-8"。然后创建了一个SoupStrainer对象,这个对象的作用是在解析(HTML)文档时进行过滤和筛选。class_=re.compile("toclevel-1")表示标签的类中含有值"toclevel-1"。然后就是进行文档解析,解析出来后得到的lis对象,就是包含资料片名称的各个<li>的集合。循环获取其中的<a>标签的href属性值即可。

    第二步,根据关键字集合拼接连接。这个很简单。

    def get_real_links(basic_url, keywords):
        real_links = []
        for keyword in keywords:
            keyword = keyword[1:]
            real_links.append(basic_url+"/"+keyword)
        return real_links

    basic_url是指:https://hearthstone.gamepedia.com,keywords就是前一步操作得到的links集合。keyword = keyword[1:]是截取去掉锚点"#"号。

    第三步就是根据资料片专题画面获取该资料片下的所有图片的图片介绍页面的链接。

    def get_img_page_links(basic_url, real_link):
    all_img_page_link = []
    r = requests.get(real_link)
    r.encoding = "utf-8"
    ss = SoupStrainer(class_="image")
    only_img_a = BeautifulSoup(r.text, "html.parser", parse_only=ss)
    for img_a in only_img_a:
    all_img_page_link.append(basic_url+img_a["href"])
    print(all_img_page_link)
    return all_img_page_link

    参数real_link是单个资料片的连接。主要代码和第一步是类似的,不再赘述了。

    第四步,根据图片介绍页面的链接集合,获取原图片的资源链接。

    def get_all_img_link(all_img_page_link):
        all_img_link = []
        for link in all_img_page_link:
            img_name = link[link.index("File:") + len("File:"):]
            path = "D://python/heartstoneimg/Knights_of_the_Frozen_Throne_full_art/"+img_name
            if os.path.exists(path):
                print(img_name+" exists")
                continue
            else:
                print("requesting:%s"%(link))
                r = requests.get(link)
                r.encoding = "utf-8"
                ss = SoupStrainer(class_="internal")
                img_a = BeautifulSoup(r.text, "html.parser", parse_only=ss)
                print("imag_a:%s" % (img_a))
                print(img_a.a["href"])
                img_link = img_a.a["href"]
                all_img_link.append((img_link, img_name))
                time.sleep(10)
                if len(all_img_link) > 20:
                    break
        print(all_img_link)
        return all_img_link

    这里的代码有偷懒的痕迹,在实际下载过程中,如果将所有资料片的所有图片一起循环下载,如果中间有报连接错误(公司网络不行),文档解析的工作就会从头开始。所以我是按照每个资料片,单独下载的。所以,在本地硬盘中创建对应资料片文件夹这项的工作是手动完成的,更换一次资料片的下载也要再手工修改一次代码,这部分可以再完善。这部分程序首先是取得文件名字,然后判断是否已经下载过了,接着获取原图链接,并把图片名称和原图链接做成一个tuple存储在集合中。这里我每次运行只解析二十张图片的信息(还是网络原因)。

    最后一步就是图片下载了。

    def do_get_img(all_image_link):
    
        for img_link in all_image_link:
            path = "D://python/heartstoneimg/Knights_of_the_Frozen_Throne_full_art/"+img_link[1];
            if os.path.exists(path):
                print(img_link[1]+" exists.")
                continue
            else:
                print("downloading:%s" % (img_link[0]))
                try:
                    pic = requests.get(img_link[0], timeout=60)
                except requests.exceptions.ConnectionError:
                    print("fail or timeout!!")
                    continue
                # path = "D://python/heartstoneimg/basic_full_art/"+img_link[1]
                print("writing:%s" % (path))
                file = open(path, 'wb')
                file.write(pic.content)
                file.close()
                time.sleep(10)

    好像也很简单,每张图片下载的超时时间是六十秒,每次下载完一张图片后延迟十秒再下载,不然有时网站会因为你访问太过频繁而拒绝访问。

    main部分的代码。

    from bs4 import BeautifulSoup
    import requests
    import re
    from bs4 import SoupStrainer
    import time
    import os
    import socket
    def start_get_img(): url = "http://hearthstone.gamepedia.com/Full_art" keywords = get_links(url) basic_url = "http://hearthstone.gamepedia.com" real_links = get_real_links(basic_url, keywords) all_img_page_link = get_img_page_links(basic_url, real_links[11]) all_img_link = get_all_img_link(all_img_page_link) do_get_img(all_img_link) if __name__ == "__main__": start_get_img()

    get_img_page_links(str,str)方法的第二个参数是当前的资料片链接。更完善的做法是循环real_links集合进行下载。

    如果网络正常,每个资料片一百多张图片可以在一个小时内下载完。

    我把下载到的原画图片作为资源制作了一个网站。

    http://www.blz-art.com

    有兴趣的可以去看下。

    转载于:https://www.cnblogs.com/derry9005/p/7405151.html

    展开全文
  • 游戏原画资源

    2014-11-23 12:49:22
    游戏中用的资源游戏开发中的图片资源~场景,人物之类的资源
  • 3D场景师的工作是根据原画设定及策划要求制作符合要求的3D场景模型;而3D角色师的工作是根据游戏人物或宠物(NPC)的概念设计图建造游戏人物、怪物/NPC的3D模型。 3D游戏场景建模在项目中需求量比较高,入门上

    随着游戏行业的发展,越来越多的人开始对这个行业感兴趣,因此有很多的小伙伴梦想成为一个游戏模型师,成为游戏行业里的一员。但是很多人都对这个工作具体是做什么的并不是很了解,下面,我们就来说说游戏模型师的主要工作是什么。

    1、建模师的主要工作?

    在游戏公司里,游戏建模主要分为3D场景建模和3D角色建模。3D场景师的工作是根据原画设定及策划要求制作符合要求的3D场景模型;而3D角色师的工作是根据游戏人物或宠物(NPC)的概念设计图建造游戏人物、怪物/NPC的3D模型。

    3D游戏场景建模在项目中需求量比较高,入门上手比较快速,因此非常适合新手,如果是没有美术基础的同学,可以先从小场景小部件学起,在一步步循序渐进哦。分享国内最全面的3D游戏建模系列相关资源,3Dmax,Zbrush,Maya等次世代游戏动漫建模软件教学,以及机械、道具、人物、怪物等模型的制作方法。学习企-鹅圈:它开头的数字是:684,在中间的是:763,位于尾部的数字是:871 ,把以上三组数字按照先后顺序组合起来即可!打造从零基础到项目开发上手实战全方位解析!

    2、游戏建模的那些常用软件?

    “工欲善其事,必先利其器”,这句话用在建模上一样通用。事实上,随着次世代游戏的发展,游戏美术制作也迎来了全新的制作理念,像ZBrush、Mudbox等软件就解放了我们的双手和大脑,让我们可以不用再依靠鼠标和参数来建模。

    常用软件

    高模:Maya、3Dmax、Zbrush

    中模:Maya、3Dmax

    低模:Maya、3Dmax、Topogun

    展UV:Maya、Zbrush、Unfold3D、Uvlayout

    烘焙:Maya、Zbrush、3Dmax、Xnormal、3DO、GrazyBump

    绘制贴图:Photoshop、Substance Painter 、Quixel SUITE、mari、Bodypaint、Mudbox

    导入引擎:UE4、Unity、CryEngine等

    看到这里,同学们可能会慌,竟然要学这么多东西?!其实这里博士只是列得比较全而已,事实上,一般只要精通其中几种,另外的软件带着了解一下,进入职场工作还是绰绰有余的。

    更多内容推荐【 次世代3D游戏建模工具教程分享企鹅圈:684763871 】 :

    开发 3D游戏,游戏建模工作需要掌握什么软件?

    游戏建模行业的前景如何?毕业学游戏建模晚吗?

    零基础如何学习3D建模?能学会就业吗?

    3D建模师要学历吗?看你有没有达到最低要求

    入行3D建模你还要学会美术?绘画?他在图你的钱啊

    影视3D建模和游戏3D建模差异,哪个更有前景?

    游戏建模师工作流程是什么?正确的学习方向以及方法

    3D建模师会因为年龄大而失业吗?答案过于心酸

    展开全文
  • 原画插画零基础自学|原画基础入门教程(附视频教程从入门到精通)原画插画零基础自学|原画基础入门教程(附视频教程从入门到精通) 第一步:我们首先创建一个A4大小的纸,当然这个尺寸不一定是固定的。 第二步:就是...

    原画插画零基础自学|原画基础入门教程(附视频教程从入门到精通)原画插画零基础自学|原画基础入门教程(附视频教程从入门到精通)

    第一步:我们首先创建一个A4大小的纸,当然这个尺寸不一定是固定的。

    第二步:就是我们在白纸上绘画出我们想要的角色草稿,而我们这位学员是想画一位坐着的双马尾美女;

    第三步:我们来把草稿的透明度的时候,建议大家可以降低至百分之三十多,这样做的好处就是:我们在进行下一步的时候,可以更深入的修改我们草稿。

    如果你也想了解原画,点击领取一套零基础到实战的免费精品视频资料。这些资料都是大神们的私藏!

    第四步:接着就是画出我们想要的美女的面部了,小伙伴们有注意这一点了:形体和人体结构、衣服穿插关系哦!所以不用把顺序搞乱了。

    第五步:接下来我们就有把背景图层油漆桶至灰调了,因为我们要画的是一个西方棋盘作为背景,所以我们得再新建一个图层用油漆桶提取亮色渐变从下往上。

    第六步:当我们再创建一个新的图层后,选用一张黑白格子的图,贴上去;如果不嫌麻烦的小伙伴们,建议是自己画上去,因这样可以多锻炼我们的基本功;然后我们要把上面一部分是远景,这个就得运用近实远虚的操作了,所以我们可以将后面的部分虚化,前面的部分实化。

    第七步:急接着就是再将人上好固有色,在这里有一点,大家要注意了:图片里面光源是来自于两侧,因此在角色的本身就偏暗,光在两边打过来,这样子全身最亮的地方都是画在两侧~然后就是头发的高光还是要打一点点灰调,细化好的人放在背景图层的上方,这样整个作品就基本完成了80%了。

    第八步:因为我们的棋盘是有点玻璃质感,所以大家要加一下影子效果,我们将画好的美女图层按ctrl+J复制图层,再在拷贝的这个图层上,运用用油漆桶渐变或者用橡皮擦的第一个笔刷调至成下方图二的样子,把橡皮擦放大的去擦掉人物要虚化的部分。

    第九步:最后我们按着ctrl+T,会显示出你可以移动的选项,在框框里面点击鼠标右键,会出现很多可以变形的选择,点击下方的“垂直翻转”,然后缩小后透明度降低,移至人物的下方图层,这样就是一个完整的原画作品了。

    当然,大家如果觉得白衣服单调,可以加一个图案。或者采用其他颜色来做衣服的颜色。

    展开全文
  • 2.手机屏幕太小看着不爽?流量不够?电脑端查看方法: 首先分享到朋友圈(保存),然后再打开此篇文章点击右上角复制链接(这是分享到朋友圈后为你生成的唯一专属链接),然后将此链接用手机QQ发送到有共同爱好的...
  • 王者荣耀中英雄的原画几乎都是非常好看的,不过在选择界面的时候相信就让一些玩家感到失望了,然而最令人失望的要数进入游戏中的英雄模型了,和原画对比简直就是天壤之别。 要说峡谷中最帅的英雄肯定要属李白哥哥...
  • bad apple 图片资源包

    2016-06-22 10:13:58
    bad apple图片资源,25fps,320*240
  • 超简单,Python爬取阴阳师原画壁纸

    千次阅读 2020-04-15 10:35:46
    Python爬取阴阳师官网原画壁纸,附完整代码爬阴阳师官网插画 作为时下顶级和风手游《阴阳师》,凭借精美的画风深得玩家的喜爱,其高质量的插画和专为不同设备打造的各种尺寸的原画,成为了我们电脑手机壁纸的首选,...
  • 游戏原画大全

    2014-07-19 13:22:27
    魔兽世界《潘多利亚的迷雾》设定_游戏原画 ,共包含78张素材图片,图片尺寸为:950px - 277px 全套欣赏和下载地址: http://www.2gei.com/view/7703.html 5_暗黑3官方素材包-Diablo_III_Fansite_Kit_en-US_游戏原画...
  • 作为一个原画设计师,应该有最基本的职业操守,那就是正确的引导新人,刚开始接触游戏原画的时 候可能会绕了很多弯路,但是对于一个新人来说,如果有前辈们的指导,借鉴一些宝贵的经验,相信原画设计这条路能走的更...
  • 英雄联盟之原画“永恩
  • 原画视频笔记

    2016-07-24 18:20:56
    办法:提取一幅图片的颜色作为色板   色彩搭配 1、搭配规律 (1)色相 Ø 零度对比(无彩色):黑白灰、金银、纯色、黑白 + 彩色 Ø 调和对比:邻近色( 30 度),类似色( 60 度),中差色( ...
  • 三国杀网页图片下载

    2020-08-17 23:50:52
    三国杀网页图片下载需求方法 需求 前几天逛贴吧,有人在问三国杀官网上方鱼鳃大姐姐的高清大图如何下载,lsp了。 方法 最直接想到的方法是用chrome浏览器直接右键下载的,但是无奈没有“图片另存为”的选项。 所以...
  • PhotoShop绘制原画讲解

    千次阅读 2016-08-14 19:03:00
    准备工作 开始基本绘制配置 接下来我们来看一下绘制过程 原画绘制其实是个考验细心的过程 还有很多不懂希望有这方面经验的朋友可以提供一些经验和素材 今天...样板图片(或者根据自己的创意进行绘制) 注意人物身材比例
  • 游戏原画 资料下载

    2011-02-27 22:04:44
    游戏 资料 原画方面的 学习学习哈 大家一起分享哦(就一张图片,9个人物)
  • 插画和原画有哪些差异?初学者怎样才能差异插画和原画?新手差异插画和原画有哪些技巧?想必这些问题都是绘画初学者们比较伤脑筋的问题,那么到底怎样才能差异插画和原画呢?原画和插画哪个难学?今日收集整理了关于...
  • HM2G-原画设定

    2012-10-25 16:27:20
    HM2G-游戏原画设定集。照例彩稿黑白稿。图片非文档。
  • 如何入门学CG原画

    2021-01-20 16:13:28
    一、基础篇 1.最简单的是从平面,不带透视角度的简笔画入门,每天临摹20-50个,享受这个枯燥的绘画过程,培养一个观察力,画的越像越好,把图形画准。 2.学习透视原理,学习基础素描,掌握...*图片来源网络,侵删...
  • P站-画师通图片如何保存为原图

    千次阅读 2020-09-02 16:57:48
    进入P站-画师通 P站-画师通 打开F12,选中一个图片找到html 找到href https://www.huashi6.com/ + href就是下一级页面 进入子页面,打开F12,选中图片 ...其中data-original连接是图片地址 ...进入图片
  • 今天,就让我们跟随完美世界张老师的步伐,去学习一个游戏角色诞生前,原画的故事。 角色原画的作用 角色原画设计在游戏美术制作当中充当说明书的作用。原画设计提供:设计思路,设计语言参考,颜色配比信息等...
  • 是不是可以很好的利用上去,完成我们的功能,我很高兴的去做了,结果并没有成功写入图片,原因是 拼接图片的网址错了 之前我是直接拼接path,结果末尾四位居然出现了10,11,12这类问题 后面加入了一个strs()函数...
  • 很多人在一开始接触绘画的时候都会留意这样漂亮的图片。 插画的作用和目的:插画是将小说等文字所描述和设计的情景和情节,以画面的形式呈现在读者面前,使读者更能理解和融入文字所描述情景和情节之
  • 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 原画爬取 先看一下炉石传说的原画: 炉石传说原画链接: ...该网站通过点击查看更多加载...
  • 游戏原画怎么画的?游戏原画绘画流程!今天给大家分享一组游戏原画绘制步骤教程,来自安迪·沃尔什(Andy Walsh)最新的Photoshop,3ds Max和Daz-3D的教程中,他为大家分享了《克鲁苏的祭品》的创作过程,并展示了...
  • +'--'+hero_skins_list[0]['heroTitle']) #进入文件夹 for i in hero_skins_list: try: #如果有问题跳过本次循环进行下一次 if i['mainImg'] == "": #如果图片url为空则跳过本次循环 continue s = s + 1 with open(i...
  • 很多对游戏原画感兴趣的小伙伴想要学习游戏原画,但不知道学习游戏原画要多久、学习游戏原画什么是最关键的?以下是我的个人经验和一些见解。  学习游戏原画需要学习的内容相关:  1.学习基础的美术知识,...
  • //把这个图片和其他app分享,AUTHORITY是自己定义的,第三个必须是完整的图片路径 takepic . putExtra ( MediaStore . EXTRA_OUTPUT , photouri ) ; //把share的Uri放进选好的路径 startActivityForResult ( ...
  • 图片来自网络 丰富你的背景 虽然我们在制作游戏原画的时候,人物是关键。但是背景的设置也是不可或缺的,在制作背景时,细节部分也可以为观察者带来一个全新的认知。你可以通过背景的切换来表示不同角色的身份,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,764
精华内容 705
关键字:

原画图片