Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
梦想橡皮擦
Python 爬虫120例
提交
737404a1
Python 爬虫120例
项目概览
梦想橡皮擦
/
Python 爬虫120例
通知
6432
Star
763
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看板
提交
737404a1
编写于
8月 31, 2021
作者:
梦想橡皮擦
💬
1
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
虎牙直播数据采集
上级
709a4737
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
62 addition
and
0 deletion
+62
-0
NO24/虎牙.py
NO24/虎牙.py
+62
-0
NO24/虎牙/空目录.txt
NO24/虎牙/空目录.txt
+0
-0
未找到文件。
NO24/虎牙.py
0 → 100644
浏览文件 @
737404a1
import
threading
import
requests
import
random
class
Common
:
def
__init__
(
self
):
pass
def
get_headers
(
self
):
uas
=
[
"Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)"
,
"其余内容"
]
ua
=
random
.
choice
(
uas
)
headers
=
{
"user-agent"
:
ua
,
"referer"
:
"https://www.baidu.com"
}
return
headers
def
run
(
index
,
url
,
semaphore
,
headers
):
semaphore
.
acquire
()
# 加锁
res
=
requests
.
get
(
url
,
headers
=
headers
,
timeout
=
5
)
res
.
encoding
=
'utf-8'
text
=
res
.
text
text
=
text
.
replace
(
'getLiveListJsonpCallback('
,
''
)
text
=
text
[:
-
1
]
# print(text)
# json_data = json.loads(text)
# print(json_data)
save
(
index
,
text
)
semaphore
.
release
()
# 释放
def
save
(
index
,
text
):
with
open
(
f
"./虎牙/
{
index
}
.json"
,
"w"
,
encoding
=
"utf-8"
)
as
f
:
f
.
write
(
f
"
{
text
}
"
)
print
(
"该URL地址数据写入完毕"
)
if
__name__
==
'__main__'
:
# 获取总页码
first_url
=
'https://www.huya.com/cache.php?m=LiveList&do=getLiveListByPage&tagAll=0&callback=&page=1'
c
=
Common
()
res
=
requests
.
get
(
url
=
first_url
,
headers
=
c
.
get_headers
())
data
=
res
.
json
()
if
data
[
'status'
]
==
200
:
total_page
=
data
[
'data'
][
'totalPage'
]
url_format
=
'https://www.huya.com/cache.php?m=LiveList&do=getLiveListByPage&tagAll=0&callback=&page={}'
# 拼接URL,全局共享变量
urls
=
[
url_format
.
format
(
i
)
for
i
in
range
(
1
,
total_page
)]
# 最多允许5个线程同时运行
semaphore
=
threading
.
BoundedSemaphore
(
5
)
for
i
,
url
in
enumerate
(
urls
):
t
=
threading
.
Thread
(
target
=
run
,
args
=
(
i
,
url
,
semaphore
,
c
.
get_headers
()))
t
.
start
()
while
threading
.
active_count
()
!=
1
:
pass
else
:
print
(
'所有线程运行完毕'
)
NO24/虎牙/空目录.txt
0 → 100644
浏览文件 @
737404a1
Programming.
@qq_54693263
·
11月 08, 2021
well done
well done
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录