Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
梦想橡皮擦
Python 爬虫120例
提交
eb6e572e
Python 爬虫120例
项目概览
梦想橡皮擦
/
Python 爬虫120例
通知
6420
Star
761
Fork
392
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Python 爬虫120例
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
eb6e572e
编写于
5月 24, 2021
作者:
梦想橡皮擦
💬
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
NO2
上级
01b90902
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
66 addition
and
0 deletion
+66
-0
NO2/index.py
NO2/index.py
+66
-0
未找到文件。
NO2/index.py
0 → 100644
浏览文件 @
eb6e572e
import
requests
import
time
global
total
# 请求函数
def
request_get
(
url
,
ret_type
=
"text"
,
timeout
=
5
,
encoding
=
"utf-8"
,
host
=
"bbs-api.mihoyo.com"
):
headers
=
{
"User-Agent"
:
"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36"
,
"Origin"
:
"https://bbs.mihoyo.com"
,
"Referer"
:
"https://bbs.mihoyo.com/"
,
"Host"
:
host
}
res
=
requests
.
get
(
url
=
url
,
headers
=
headers
,
timeout
=
timeout
)
res
.
encoding
=
encoding
if
ret_type
==
"text"
:
return
res
.
text
elif
ret_type
==
"image"
:
return
res
.
content
elif
ret_type
==
"json"
:
return
res
.
json
()
# 保存图片
def
save_image
(
image_src
):
content
=
request_get
(
image_src
,
"image"
,
host
=
"upload-bbs.mihoyo.com"
)
with
open
(
f
"
{
str
(
time
.
time
())
}
.jpg"
,
"wb"
)
as
f
:
f
.
write
(
content
)
global
total
total
+=
1
print
(
f
"保存第
{
total
}
张图片"
)
# 抓取内页数据
def
detail
(
post_id
):
url
=
f
"https://bbs-api.mihoyo.com/post/wapi/getPostFull?gids=5&post_id=
{
post_id
}
&read=1"
res_json
=
request_get
(
url
,
ret_type
=
"json"
,
timeout
=
5
)
if
res_json
[
"retcode"
]
==
0
:
image_list
=
res_json
[
"data"
][
"post"
][
"image_list"
]
for
img
in
image_list
:
img_url
=
img
[
"url"
]
if
(
img_url
.
find
(
"weigui"
))
<
0
:
save_image
(
img_url
)
# 抓取函数
def
main
(
last_id
):
# 起始页面
url
=
f
"https://bbs-api.mihoyo.com/post/wapi/getForumPostList?forum_id=47&gids=5&is_good=false&last_id=
{
last_id
}
&is_hot=false&page_size=20&sort_type=2"
res_json
=
request_get
(
url
,
ret_type
=
"json"
,
timeout
=
5
)
if
res_json
[
"retcode"
]
==
0
:
for
item
in
res_json
[
"data"
][
"list"
]:
# 抓取内页数据
detail
(
item
[
"post"
][
"post_id"
])
if
res_json
[
"data"
][
"last_id"
]
!=
""
:
return
main
(
res_json
[
"data"
][
"last_id"
])
if
__name__
==
'__main__'
:
global
total
total
=
0
main
(
6356513
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录