Skip to content

Commit c076c3a

Browse files
committed
🎀 Bilibili 最热最新爬取更新
1 parent d26a593 commit c076c3a

File tree

5 files changed

+35
-26
lines changed

5 files changed

+35
-26
lines changed

Config.php

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
*/
88

99
date_default_timezone_set('PRC'); //设置时区
10+
1011
//定义目录名
1112
define("API_PATH", "Api"); //存放API Key文件夹
1213
define("FILE_PATH", "Resource"); //存放文件文件夹名
@@ -15,8 +16,6 @@
1516
//网站API链接
1617
define("PIXABAY_API_URL", "https://pixabay.com/api/");
1718

18-
19-
2019
define("DATE_FORMAT", "m-d");//日期格式
2120
//随机搜索关键词
2221
define("RAND_KEYWORD", array(
@@ -35,19 +34,19 @@
3534
'jk',
3635
'game',
3736
));
37+
3838
//通用等待设置
3939
define("SPIDERWAIT_TIME_MIN", "1");//最早等待
4040
define('SPIDERWAIT_TIME_MAX', "10");//最大等待
4141
//artatstion执行一次循环,睡一会觉觉(误)
4242
define("ARTSTATION_SLEEP", "true");
43-
define("ARTSTATION_SLEEP_TIME_MIN", "20");//最小等待
44-
define("ARTSTATION_SLEEP_TIME_MAX", "10");//最大等待
43+
define("ARTSTATION_SLEEP_TIME_MIN", "10");//最小等待
44+
define("ARTSTATION_SLEEP_TIME_MAX", "20");//最大等待
4545
//bilibili执行一次循环, 就-1s
4646
define("BILIBILI_SLEEP", "true");
4747
define("BILIBILI_SLEEP_TIME_MIN", "10");//最小等待
4848
define("BILIBILI_SLEEP_TIME_MAX", "40");//最大等待
4949

50-
5150
//数据库链接
5251
define("SAVE_IMAGES_URL_DATABASE", "false");//是否记录图片链接到数据库
5352
define("DB_MS", 'mysql');//数据库类型

Src/PublicCore.php

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ public function curl_get($url, $user_agent)
3636

3737
/**
3838
* 写log
39+
* @param $spider_name string 爬虫名称
40+
* @param $data string 内容
41+
* @param null $filename_data 文件名附加字符串
3942
*/
4043
public function add_log($spider_name, $data, $filename_data = null)
4144
{
@@ -46,7 +49,9 @@ public function add_log($spider_name, $data, $filename_data = null)
4649
}
4750

4851
/**
49-
* 创建log文件夹
52+
* @param $spider_name string 爬虫名称
53+
* @param $filename_data string 内容
54+
* @return string 文件路径
5055
*/
5156
public function create_log($spider_name, $filename_data)
5257
{
@@ -60,8 +65,8 @@ public function create_log($spider_name, $filename_data)
6065

6166
/**
6267
* 文件夹名
63-
* @param $string
64-
* @return string
68+
* @param string 名称
69+
* @return string 路径
6570
*/
6671
public function new_dir_name($string)
6772
{
@@ -108,10 +113,11 @@ public function dir_create($dir_name)
108113

109114
/**
110115
* 获取提示并用户输入
111-
* @param $string
112-
* @return string
116+
* @param $string string 提示
117+
* @param $default 1|string 用户未输入时的默认职
118+
* @return string 用户输入内容
113119
*/
114-
public function user_input($string, $default)
120+
public function user_input($string, $default = 1)
115121
{
116122
print_r($string);
117123
$input = trim(fgets(STDIN));

Src/Spider/Artstation.php

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -133,11 +133,6 @@ public function search($spiderCore)
133133
}
134134

135135
$artstation = new Artstation();
136-
print_r( //输出用户选择的菜单
137-
"=====================================
138-
\033[33m Artstation Spider \033[0m" .
139-
$spiderCore->eol($spiderCore->print_menu($artstation->mode)) .
140-
"============================================"
141-
);
136+
$spiderCore->bMenu($artstation->mode, $artstation->spider_name);
142137
$mode = $spiderCore->user_input(PHP_EOL . "请选择你需要使用的模式:", null);
143138
@empty($user_mode = $artstation->mode[$mode]) ? die(PHP_EOL . '没有这个爬虫模式') : $artstation->$user_mode($spiderCore); //调用爬虫,并传入公用function

Src/Spider/Bcy.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,4 @@ public function serve()
3939

4040

4141
$bcy = new Bcy();
42-
$bcy->serve();
42+
$bcy->serve();

Src/Spider/Bilibili.php

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ class Bilibili
1818
"User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36"
1919
];//设置用户user-agent
2020

21-
public $spiderName= "Bilibili";
21+
public $spider_name = "Bilibili";
2222

2323
public $rank_type = [ //排行榜
2424
1 => 'day',
@@ -46,11 +46,10 @@ class Bilibili
4646
];
4747

4848
public $category = [ //类别
49-
1 => null,
49+
1 => "all",
5050
2 => 'cos',
5151
'sifu'
5252
];
53-
//https://api.vc.bilibili.com/link_draw/v2/Photo/list?category=cos&type=hot&page_num=1&page_size=20
5453

5554
/**
5655
* 掏空bilibili专用
@@ -72,13 +71,13 @@ public function fuckBilibili($spiderCore)
7271
} else {
7372
$spider_date = date('Y-m-d');
7473
}
75-
while (true) {
74+
while (true) { //无限循环,直到报错停止
7675
$spider_date = $this->getYesterday($spider_date);
7776
print_r("开始获取:" . $spider_date . PHP_EOL);
7877
//封装请求链接
7978
@$parm = "biz=" . $biz . "&category=" . $this->category[$category] . "&rank_type=" . $this->rank_type[$rank_type] . "&date=" . $spider_date . "&page_num=0&page_size=50";
8079
$url = "http://api.vc.bilibili.com/link_draw/v2/Doc/ranklist?" . $parm;
81-
// print_r(PHP_EOL . "爬取的参数为:" . $parm . PHP_EOL);
80+
// print_r(PHP_EOL . "爬取的URL为:" . $parm . PHP_EOL);
8281
//下载
8382
$result = $spiderCore->curl_get($url, $this->userAgent);
8483
$result = json_decode($result);
@@ -113,8 +112,18 @@ public function allImages($spiderCore)
113112
$posts_num = $spiderCore->user_input("请输入爬取页数(1页=20个作品)(默认为:1):", 1);
114113
$posts_num--; //bilibili第一页居然是0,其他页面又不一样
115114

115+
if ($biz == 'Photo') {
116+
$category = $this->category[$this->quick_input($spiderCore, "请选择板块(默认为 2 Cos ):", $this->category, "没有这种板块", '2')];
117+
!empty($category) ?: $category = "all";
118+
} else {
119+
$category = "all";
120+
}
121+
116122
for ($i = 0; $i <= $posts_num; $i++) {
117-
$url = "https://api.vc.bilibili.com/link_draw/v2/" . $biz . "/list?category=all&type=" . $mode . "&page_num=" . $i . "&page_size=20";
123+
$url = "https://api.vc.bilibili.com/link_draw/v2/" . $biz . "/list?category=" . $category .
124+
"&type=" . $mode .
125+
"&page_num=" . $i .
126+
"&page_size=20";
118127
$result = $spiderCore->curl_get($url, $this->userAgent);
119128
$result = json_decode($result);
120129
$images_arr = $this->get_images($result);
@@ -217,7 +226,7 @@ public function search($spiderCore)
217226
*/
218227
public function quick_input($spiderCore, $string, $array, $exit_string, $default)
219228
{
220-
$spiderCore->bMenu($array,$this->spiderName);
229+
$spiderCore->bMenu($array, $this->spider_name);
221230
$input = $spiderCore->user_input($string, $default);
222231
if (@empty($array[$input])) {
223232
die($exit_string);
@@ -286,6 +295,6 @@ public function top50($spiderCore)
286295

287296
$bilibili = new Bilibili();
288297

289-
$spiderCore->bMenu($bilibili->mode,$bilibili->spiderName);
298+
$spiderCore->bMenu($bilibili->mode, $bilibili->spider_name);
290299
$mode = $spiderCore->user_input(PHP_EOL . "请选择你需要使用的模式:", null);
291300
@empty($user_mode = $bilibili->mode[$mode]) ? die(PHP_EOL . '没有这个爬虫模式') : $bilibili->$user_mode($spiderCore); //调用爬虫,并传入公用function

0 commit comments

Comments
 (0)