Tominysun

前言

原来的一言是一个json包,总共1500条.

Snipaste_2020-04-15_21-15-15.png

但经常看到重复的?(雾)同时又发现了Hitokoto.cn这个收集站,因为我的访问量小嘛,为了不给他们带来负担,同时又由于我有一种自用的东西都要掌握在自己手里的奇怪想法😅(或许是各种各样的服务倒闭所引起的吧.)
反正我就是要自己做一言站点自用啦!(无需在意前面奇奇怪怪的内容)

上手

由于我仅会的爬虫语言只有php,学业繁重(摸鱼太多),也没来及的去学习python.所以只好用php写了爬虫脚本然后写入mysql数据库...
如下所示:(或许这么简单的代码就不只我和马克思能看懂,你也没问题!😏)

<?php 
/*
 *Yiyan Collection
 *author:Jiang Xu
 *description:get Yiyan from international.v1.hitokoto.cn directly and save it.
 *date:20200415
*/

//相关配置
require_once(__DIR__ ."/config.php");//模块化mysql相关前置函数,$conn可直接使用
require_once(__DIR__ ."/var/curl.php");//自用的curl函数.

ob_start();
for($i=0;$i<25;$i++){
    //sleep(1);
$json = curl_request('https://international.v1.hitokoto.cn/','https://hitokoto.cn/',false);
$array = json_decode($json,true);

$id = $array['id'];
$hitokoto = str_replace("'","\'",$array['hitokoto']);//$array['hitokoto'];
$type = $array['type'];
$from = $array['from'];
$from_who = $array['from_who'];
$creator = $array['creator'];
$creator_uid = $array['creator_uid'];
$reviewer = $array['reviewer'];
$uuid = $array['uuid'];
$created_at = $array['created_at'];

//echo '<br>'.$uuid;

$sql = "SELECT uuid from hitokoto WHERE uuid='".$uuid."'";
$retval = mysqli_query( $conn, $sql ); // 查询数据
$row = mysqli_fetch_array($retval,MYSQLI_ASSOC);
if(empty($row)){
    echo $json."\n";
    $sql = "INSERT INTO hitokoto ".
        "(`id`,`hitokoto`,`type`,`from`,`from_who`,`creator`,`creator_uid`,`reviewer`,`uuid`,`created_at`) ".
        "VALUES ".
        "('$id','$hitokoto','$type','$from','$from_who','$creator','$creator_uid','$reviewer','$uuid','$created_at')";
    $retval = mysqli_query( $conn, $sql );
    if(! $retval ){
        $errors = '无法插入数据: ' .$json. mysqli_error($conn).'\n';
        echo $errors;
        file_put_contents(__DIR__ ."/errors.txt", $errors, FILE_APPEND);
    }
}
}
$out = ob_get_contents();
ob_end_clean();
echo $out;
?>

代码肯定有很多不足之处,不过无所谓啦,反正已经爬完了...(其实还剩下十几条,死活都爬不出来,放弃了,日后访问到再写入.)

PS:https://international.v1.hitokoto.cn/现在QPS为25!⚠

所以很快本站就会用上全新的一言了!不过看起来也不会有什么变化...╮(╯▽╰)╭

鸣谢!

https://hitokoto.cn/

后记

有需要一言数据库的可以留言告诉我,我可以私发,本来这就是共享的嘛,就不要再给服务器增加负担了.

添加新评论