Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
梦想橡皮擦
Python 爬虫120例
提交
75a3dd6e
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看板
提交
75a3dd6e
编写于
6月 10, 2021
作者:
H
hjCodeCloud
1
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
奥特曼抓取
上级
ba21aa3f
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
78 addition
and
0 deletion
+78
-0
NO4/index.py
NO4/index.py
+78
-0
未找到文件。
NO4/index.py
0 → 100644
浏览文件 @
75a3dd6e
import
requests
import
re
import
time
# 声明 UA
headers
=
{
"User-Agent"
:
"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36"
}
# 存储异常路径,防止出现爬取失败情况
error_list
=
[]
# 爬虫入口
def
run
():
url
=
"http://www.ultramanclub.com/allultraman/"
try
:
# 网页访问速度慢,需要设置 timeout
res
=
requests
.
get
(
url
=
url
,
headers
=
headers
,
timeout
=
10
)
res
.
encoding
=
"gb2312"
html
=
res
.
text
return
get_detail_list
(
html
)
except
Exception
as
e
:
print
(
"请求异常"
,
e
)
# 获取全部奥特曼详情页
def
get_detail_list
(
html
):
start_index
=
'<ul class="lists">'
start
=
html
.
find
(
start_index
)
html
=
html
[
start
:]
links
=
re
.
findall
(
'<li class="item"><a href="(.*)">'
,
html
)
# links = list(set(links))
links
=
[
f
"http://www.ultramanclub.com/allultraman/
{
i
.
split
(
'/'
)[
1
]
}
/"
for
i
in
set
(
links
)]
return
links
def
get_image
(
url
):
try
:
# 网页访问速度慢,需要设置 timeout
res
=
requests
.
get
(
url
=
url
,
headers
=
headers
,
timeout
=
15
)
res
.
encoding
=
"gb2312"
html
=
res
.
text
print
(
url
)
# 获取详情页标题,作为图片文件名
title
=
re
.
search
(
'<title>(.*?)\['
,
html
).
group
(
1
)
# 获取图片短连接地址
image_short
=
re
.
search
(
'<figure class="image tile">[.\s]*?<img src="(.*?)"'
,
html
).
group
(
1
)
# 拼接完整图片地址
img_url
=
"http://www.ultramanclub.com/allultraman/"
+
image_short
[
3
:]
# 获取图片数据
img_data
=
requests
.
get
(
img_url
).
content
print
(
f
"正在爬取
{
title
}
"
)
if
title
is
not
None
and
image_short
is
not
None
:
with
open
(
f
"images/
{
title
}
.png"
,
"wb"
)
as
f
:
f
.
write
(
img_data
)
except
Exception
as
e
:
print
(
"*"
*
100
)
print
(
url
)
print
(
"请求异常"
,
e
)
error_list
.
append
(
url
)
if
__name__
==
'__main__'
:
details
=
run
()
for
detail
in
details
:
get_image
(
detail
)
while
len
(
error_list
)
>
0
:
print
(
"再次爬取"
)
detail
=
error_list
.
pop
()
get_image
(
detail
)
print
(
"奥特曼图片数据爬取完毕"
)
qq_41606607
@qq_41606607
·
7月 19, 2021
looks nice
looks nice
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录