米哈游不仅有原神,还有 coser 小姐姐和 coser 女装大佬,上班的时候用 python 爬虫偷偷下载,加班的时候摸摸鱼,谨防猝死。
防爬虫
打开米哈游的 coser 界面 https://bbs.mihoyo.com/dby/topicDetail/547
,并且在打开 F12 控制面板的时候,刷新页面。意外的是居然有 js 的防爬虫机制,表现为如下图:
js 代码是
1 |
|
点击下面的倒数第二个按钮,破解掉它。
列表页
想要快速找到返回页面内容的 url 地址,可以在网络面板中使用 Ctrl+F 查找,然后对呀返回值一条条查看是否是需要的那条,这里找到了一条 getTopicPostList
地址的 url。
这个页面是没有翻页的,对比第二页的 getTopicPostList
请求地址,比第一个多了 last_id
参数,最终的参数为:
- gids: 5,未知
- last_id: 18114983,最后一个的 id
- is_good: false,未知
- is_hot: false,是否热门
- page_size: 20,每页条数
- forum_id: 47,板块 id
- sort_type: 排序
1 |
|
详细页
详细的 url 地址也是返回的 json 串,而且只需要传递 post_id
参数就好了,比较简单。图片的 url 地址就在 [“data”][“post”][“image_list”] 下,在返回的图片中有违规的图片,需要提前处理下。
1 |
|
保存图片
保存图片就是普通的 with open
函数和文件的 write
函数。
1 |
|
总结
这篇文章的技术就使用了 requests 和 json 以及一点点的控制面板反爬虫。小伙伴们学会了吗?