统计的结果请见第一篇文章.

代码已经开源至GitHub

本文下面所有的爬虫项目都有详细的配套教程以及源码,都已经打包好上传到百度云了,链接在文章结尾处!

扫码此处领取大家自行获取即可~~~

讲真, 这个应该是我做过的最难受的爬虫项目. 一共搞了两天半, 嘛都干不了哎哟.

因为Pixiv的反爬机制, 好端端的代码硬生生地堆成了屎山.

首先, 我们来确定一下我们的统计逻辑.

要统计各角色的涩图数量, 可以直接在Pixiv搜索角色的名字. 但是对于爬虫来说, 或许要用如下链接.

Pixiv中主要使用的语言有, 简体中文, 繁体中文, 日文, 英文, 韩文五种. 虽然也有些创作者会采用俄语, 但是考虑到原神并没有俄语版本, 因此我们不统计俄语的.

同时, 我们注意到, 对于每一个角色的名字来说, 有些名字搜索出来的并不一定就是和和原神相关的, 这种我们自然不能让其被统计进去.

Lumine tag下 也有和原神 荧 不相关的作品

OK, 那么总结一下, 我们的逻辑就是:

  1. 先获取到原神各角色各语言的名字, 比如说凯亚, Kaeya, 凱亞, ガイア, 케이아.
  2. 然后, 再在Pixiv上根据这些名字爬取所有作品,
  3. 爬取到的作品中, 并不是全部都和原神相关, 因此, 我们创建一个list, 要求该作品必须出现这个list的一个元素, 或者其他原神角色的名字(任意语言都行), 才能被判断为属于该原神角色的涩图. 具体的list会在后面给出
  4. 统计上述作品中不重复的部分.

用到的package如下所示.

首先, 我们得获取原神各角色名字, 这个在原神官网就能爬取到.

但是, 在实际爬取过程中, 这个网站切换语言经常失败或者自动根据IP地址跳转.

甚至还可以返回一半英语一半日文的内容. 因此我手动保存了这个网站的个语言的源代码,

简体中文的名字在原神国内官网就能找到, 和国际官网类似, 但是注意, 一定注意.

国内官网刻晴和七七的顺序有误, 需要在保存的源代码中调整.

繁体中文

简体中文(顺序错误)

之后再用正则识别出各角色的各语言名字.

注意为了数据的准确性, 可以对一些稻妻角色姓名做一些调整, 增加一些搜索内容

注意, 原神官网上没有荧和空, 需要特殊处理

关于判断一个作品是不是和该原神角色相关, 我们的逻辑是如果在该作品中出现了其他原神角色的名字, 或者除本语言外的本角色名字, 或者出现一个在下面list中列出的元素, 就认为其和该原神角色相关.

注意忽略大小写.

judgeTag=[‘原神’,‘Genshin’,‘Impact’,‘米哈游’,‘米哈遊’,‘HoYoLAB’,‘원신’,‘HOYOVERSE’,‘miHoYo’,‘蒙德’,‘璃月’,‘须弥’,‘稻妻’,‘枫丹’,‘纳塔’,‘至冬’,‘提瓦特’,‘Mondstadt’,‘Liyue’,‘Inazuma’,‘Sumeru’,‘Fontaine’,‘Natlan’,‘Snezhnaya’,‘爷’,‘派蒙’,‘Paimon’,‘旅行者’,‘履刑者’,‘屑’,‘森林书’,‘兰纳罗’,‘双子’,‘愚人众’,‘Traveller’,‘Traveler’,‘雷音权现’,‘七星’,‘水’,‘火’,‘岩’,‘冰’,‘风’,‘雷’,‘草’,‘タル蛍’,‘雷电影’,‘雷电真’,‘雷電影’,‘黄金梦乡’,‘深渊’,‘Abyss’,‘七圣召唤’,‘Twins’,‘崩坏’,‘星穹铁道’,‘爱莉希雅’,‘Elysia’,‘女仆’,‘旅人’,‘Travel’,‘公子’,‘捷德’,‘风花节’,‘海灯节’,‘纠缠’,‘Wish’,‘Pull’,‘海祈岛’,‘珊瑚宫’,‘渊下宫’,‘尘歌’,‘萍姥姥’,‘龙脊雪山’,‘苍风高地’,‘风啸山坡’,‘明冠山地’,‘坠星山谷’,‘珉林’,‘璃沙郊’,‘云来海’,‘碧水原’,‘甜甜花’,‘层岩巨渊’,‘Status’,‘天理’,‘琪亚娜’,‘食岩之罚’,‘仙跳墙’,‘佛跳墙’,‘野菇鸡肉串’,‘珊瑚宫’,‘心海’,‘Pyro’,‘Cyro’,‘Hydro’,‘Nature’,‘Anemo’,‘Geo’,‘Dendro’,‘Electro’,‘Swirl’,‘原石’,‘Primogem’,‘Jade’,‘God’,‘Fate’,‘Intertwined’,‘纠缠之缘’,‘Serenitea’,‘Artifact’,‘圣遗物’,‘博士’,‘doctor’,‘同人’]

之后就是重头戏, 爬取Pixiv.

Pixiv不登录不给爬, 但是我们也得学会变通一点. 我们不要硬钢那个登录接口, 我们采取迂回的办法.

我们直接把我们登录后在浏览器看到的cookie复制下来, 写进header里面.

(至于为什么我用了好几个cookie, 我后面会讲)

有了cookie之后, 我们再爬取tags的时候才会返回正常内容.

不过注意, 内容并不是在网页HTML中返回的, 而是需要请求另外一个页面, 才会返回给我们有意义的内容.

其中, 红圈圈出来的, 就表示需要请求的 tag 和 第几页.

具体来说, 我们就是要用装有cookie的header, 生成这个链接, 然后再请求, 这样才能取到有实际意义的内容.

这个链接很简单, 就用如下字符串拼接的方式生成.

requestURL='https://www.pixiv.net/ajax/search/artworks/'+name+'?word='+name+'&order=date_d&mode=all&p='+str(page)+'&s_mode=s_tag_full&type=all&lang=zh&version=1bb9c95cd9cbc108a16ddf9fea198f3210ac5053'

之后还需要load一下json

之后再用正则筛选出有用的信息

不过注意, Pixiv脾气并不是很好. 短时间请求的数量太多, 会返回空内容, 所以需要判断一下内容是不是为空.

同时, 如果那个tag下面就真的没有任何内容, 返回的也是空值.

另外, 如果网络不好也可能收到空内容或者内容不全.

最后, 有时候网络是正常的, Pixiv也正常处理响应, 但是返回的内容就是不全, 或者返回了其他不完全相关的内容.

最后的最后, 当已经爬取完所有内容后, 再让 page+=1 爬取下一页的内容. Pixiv并不会返回404, 而是也返回空值.

还得注意, 返回的内容是有重复的, 这个也要考虑到.

如果自己写代码的话上面的问题都需要考虑, 我的代码中已经考虑并且测试通过了.

前面提到过, Pixiv爬取非常慢, 因此我们用多线程.

但是多线程就很容易被禁cookie, 因此我们搞多个cookie, 并且设计一套算法来决定到底用哪个cookie.

如果有一次请求不成功, 这个cookie的sleep time就加20秒.

换cookie的时候, 要睡眠对应cookie的睡眠时间

美成功处理完6个角色(所有语言的名字), 就要把睡眠时间重置. 免得最后退化成单cookie模式.

至于main.py跑完后的结果可视化, 那个讲起来太长了, 并且全都是matplotlib画图, 有问题的在评论区问我吧.

【原神】各角色Pixiv涩图统计(一). 最多的是谁? R18涩图谁最多?相关推荐

  1. 极复杂编码,下载《原神》角色高清图、中日无损配音,爬虫 16 / 120 例

    各位 C 站的爬虫爱好者,今天咱们要采集的目标站点是 原神官网,核心目标数据为原神角色图,角色大头贴,角色昵称,角色配音文件. 文章目录 待爬取页面分析 技术细节强调 目标数据格式规定 编码时间 收藏 ...

  2. Unity-ShaderLab 逆向还原《原神》角色卡通渲染思路与实现(保姆级教学)-2

    一转眼已经有一个多月没更新了额,时间过得真快.今天终于决定要更新Part 2了. ----那我们就继续吧. 上篇已经讲完了漫反射.高光和光照贴图,本篇将会介绍角色背光时边缘光与基于阈值图的面部阴影的实 ...

  3. 啥是原神?女友说想要全角色语音+表情包,顺手用python把高清图也整下来了

    原神全角色中日语音+表情包+高清图 人生苦短 我用python 表情包部分: 1. 素材来自: 2. 准备模块 3. 调用浏览器驱动 4. 页面滚动 5. 保存数据 5. 效果 全角色语音+高清彩图部 ...

  4. 开启事物_《原神》全新角色甘雨登场 「浮生孰来」活动祈愿开启_新闻资讯_最新手游时评_原创手游资讯...

    璃月地区的方方面面,都由「璃月七星」治理.由他们决议得出的策略牵动着市场的走向,因此每一条都要慎重再三.而会议之后,是谁摘录出要点,编入长长的条例中的,人们便不得而知了. 璃月的千头万绪,就是这样被七 ...

  5. 将原神角色导入unity 完整版

    一.角色导入         首先需要获取角色模型,获取方式可以从原神官网获取,这里采用从模之屋进行获取,进入模之屋后搜索自己想要的角色,然后下载压缩包并解压. 模之屋:专业模型创作分享社区_模之屋_ ...

  6. nonebot 原神角色查询插件

    文章目录 前言 一.使用命令及方法 1.使用命令 2.使用方法 二.代码部分 1.引入库 2.完整代码 总结 前言 本插件基于nonebot框架进行创作 作者萌新源 作者QQ:1648576390 交 ...

  7. 《原神》——开放世界二次元游戏的一些见解和建议

    一.原神在海外的布局 原神商业化的成功绝对离不开其海外的布局,截止目前的数据来看,原神在海外的市场带来的商业化价值已经和国内相近甚至更高.原神不仅在多国拿到付费榜榜首的好成绩,并且在12月1日,谷歌公 ...

  8. 米哈游CEO蔡浩宇GDC演讲:《原神》如何打造动人的开放世界?

    <原神>于2020年席卷全球,获得了各国玩家与开发者极高的评价.游戏系统自不必说,被日系动画风的角色与开放世界美术吸引的玩家在全球也不可胜数. 在正在举行的2021 GDC游戏开发者大会上 ...

  9. 德友圈服务器维护多久,原神蒙德城走一圈要多久

    1 回答 原神蒙德城哪有青蛙? 在原神游戏中,青蛙只能通过野外采集淡水水域采集获得.所以蒙德城内是没有青蛙的,玩家们如果在蒙德城附近的话,可以在城外的森林或者池塘边去捕捉.比较建议玩家们可以到灵矩关水 ...

最新文章

  1. 再议.Net中null的使用规范
  2. 设计模式 — 行为型模式 — 访问者模式
  3. c中嵌入Python,提供灵活性
  4. vb.net2019-多线程并行计算(6)
  5. stata中计算公式命令_stata学习笔记(三):计算五年内的ROA标准差所用到的一些知识...
  6. android ArcGIS学习笔记一
  7. 人山人海人立方 http://renlifang.msra.cn
  8. ubuntu里面的任务管理器
  9. 带你深入了解何为TeamViewer视频通话
  10. 漫画:Dijkstra 算法的优化
  11. 云南高中信息技术测试软件,(整理)云南省高中信息技术学业水平考试各种操作....
  12. 图片底下配的文字叫什么_图片下面加文字 图片周边留白加文字,照片加边框并在照片下面加文字...
  13. 计算机主机与显示屏如何接线,主机跟显示器怎么连接
  14. oracle rman delete backupset,RMAN Crosscheck后delete obsolete遇到RMAN-06091的解决
  15. yii mysql gii_YII-快速用gii创建一个简单的yii项目!
  16. 005-2-Python文件操作
  17. MySQL B+树 BTree原理、增删改(详细)
  18. 基于颜色特征的图像检索(一)
  19. 3. 剪辑入门--电影混剪 (1)
  20. 小蜜蜂(裴波那契的应用)

热门文章

  1. ThinkPad E450 最新macOS BigSur黑苹果安装教程(OpenCore引导)
  2. SpringBoot发送邮件(二)发送包含图片的邮件
  3. ent orm笔记2---schema使用(上)
  4. 群智能(SI)与蚁群优化(ACO)概述
  5. gitbook看电子书
  6. kinect 学习笔记一
  7. 左侧菜单栏左滑收起展开效果
  8. VLC Player – 自由、开源的跨平台多媒体播放器
  9. nnUNet原创团队全新力作!MedNeXt:医学图像分割新SOTA
  10. IPv6基础介绍--IPv6路由基础--DHCPv6原理与配置——总结